angular.js - Suntikan penyelesaian dalam pengawal gagal dalam penghalaan angularjs
高洛峰
高洛峰 2017-05-15 17:02:13
0
1
795

Kerana didapati azam bukan sahaja dicetuskan apabila dimuatkan, tetapi juga dicetuskan apabila kembali, tetapi pengawal yang diperolehi tidak dikemas kini apabila kembali.
Dalam contoh ini, perkara yang diperoleh dengan tekad juga dimasukkan ke dalam perkhidmatan untuk mendapatkannya Saya pada asalnya ingin mencuba menukar kepada kaedah suntikan untuk melihat sama ada keadaannya masih tidak berjaya, saya merancang untuk meletakkannya dalam perkhidmatan atau menyelesaikan Data hanya digunakan apabila dimuatkan.
Jadi saya ingin mencari contoh untuk mengujinya, tetapi suntikan selalu gagal.

Tiada ujian disuntik di sini Ralat akan dilaporkan apabila disuntik.
http://jsfiddle.net/abelmakihara/x99b2o2p/3/

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(1)
小葫芦

Itu sahaja saya melihatnya dengan teliti. Terdapat sesuatu yang salah dengan pemahaman anda tentang ngRoute Saya telah menukarnya

Perbezaan utama ialah:

app.factory('rulesFactory', ['$q', '$timeout',
  function($q, $timeout) {
    return function() {
      return $q(function(resolve){
          $timeout(function() {
              //这里如果期待返回值,就要用$q封装,并resolve
              resolve('Change time in seconds:' + new Date().getTime() / 1000);
          }, 1000)
      });
    };
  }
]);
$routeProvider
.when('/', {
    action: 'index',
    resolve: {
        //这里的resolve真对的是该路由自己的controller
        'test': ['rulesFactory', function(rulesFactory) {
            return rulesFactory();
        }]
    },
    //所以一定要定义一个自己的AController
    controller: 'AController',
    template: '<h3>{{test}}</h3>'
})
.when('/page', {
    action: 'page',
    resolve: {
        'test': ['rulesFactory', function(rulesFactory) {
            return rulesFactory();
        }]
    },
    controller: 'BController',
    template: '<h3>{{test}}</h3>'
})
//然后,AController,BController就可以注入test了,并且test的值就是上面resolve的那堆字符串
app.controller('AController', ['$scope', 'test',

  function($scope, test) {
    $scope.test = test;
  }
]);

app.controller('BController', ['$scope', 'test',

  function($scope, test) {
    $scope.test = test;
  }
]);
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan