Làm thế nào để kiểm tra một bộ điều khiển với các thuộc tính phân giải? Nó ném một lỗi: Nhà cung cấp không xác định: InitProvider, trong quá trình thử nghiệm, dễ hiểu. Làm cách nào để kiểm tra?Làm thế nào tôi có thể kiểm tra một bộ điều khiển với các thuộc tính giải quyết trong AngularJS?
Tôi sử dụng thuộc tính init trong cấu hình tuyến đường để tải dữ liệu và chuyển nó đến bộ điều khiển tại trình điều khiển để tuyến đường không thay đổi trước khi dữ liệu được tải.
$routeProvider
.when('/topic/:topic_id/content/:content_id', {
templateUrl: 'views/content.html',
controller: 'ContentCtrl',
resolve: {
init: ContentCtrl.init
}
});
Mẫu có hoàn toàn sai ở địa điểm đầu tiên không?
'use strict';
var ContentCtrl = ['$scope', '$location', '$routeParams', 'init', function ($scope, $location, $routeParams, init) {
$scope.contents = init.contents;
}];
ContentCtrl.init = ['$q', 'app_config', '$log', '$timeout', function ($q, app_config, $log, $timeout) {
var defer = $q.defer();
$log.log("ContentCtrl loading..");
$timeout(function() {
defer.resolve({contents: [
{message: 'Hello!'}
]});
$log.log("ContentCtrl loaded.");
}, 2000);
return defer.promise;
}];
angular.module('studentportalenApp').controller('ContentCtrl', ContentCtrl);
Tôi muốn để đóng gói toàn bộ điều khiển bên trong .controler('ContentCtrl', function() { ... })
, nhưng vẫn chưa tìm ra cách này được thực hiện một cách chính xác để làm cho init có sẵn trong cấu hình tuyến đường.
Hãy thử chuyển đổi 'ContentCtrl.init' sang dịch vụ' góc cạnh' và tiêm dịch vụ đó làm phụ thuộc khi cần – charlietfl