我已经创建了该服务,但我没有在控制器中使用此服务。
(function(){
'use.strict';
angular
.module('app.core')
.factory('shareBtwnCtrlr', shareBtwnCtrlrService);
/** @ngInject */
function shareBtwnCtrlrService() {
shareBtwnCtrlr = function($scope, $rootScope){
$scope.value = $rootScope.test;
}
return shareBtwnCtrlr;
}
})();
在上面的代码中,$ rootScope.test来自一个控制器,现在我必须在另一个使用此服务的控制器中使用这个$ scope.value。另一个控制器如下所示
(function (){
'use strict';
angular.module('app.product')
.controller('ProductController', ProductController);
/** @ngInject */
//ProductController.$inject = ['$http', '$location', '$scope'];
function ProductController($http, $location, $rootScope, $scope, $localStorage, $interval, $timeout,$mdDialog, $document, shareBtwnCtrlr){
var vm = this;
}
})();
答案 0 :(得分:0)
您有两个模块,因此依赖注入器无法将您的服务从app.core注入app.product。 尝试创建新模块
var app = angular.module('app', ['app.core','app.product']);
然后
angular.module('app').factory('shareBtwnCtrlr', shareBtwnCtrlrService);
答案 1 :(得分:0)
只能将同一模块中的服务注入模块的控制器和指令。
应该将新模块添加到应用程序中以扩展其功能。
angular.module('app.core')
.factory('shareBtwnCtrlrService', function() {
var shareBtwnCtrlrService = this;
shareBtwnCtrlrService.value = function(){
//do something
}
return shareBtwnCtrlrService;
}
};
angular.module('app.product')
.factory('productService', function() {
var productService = this;
productService.value = function(){
//do something
}
return productService;
}
};
现在要在core
和product
模块中使用该服务,我们创建app
模块,包括其中的
angular.module('app', ['app.product', 'app.core'])
.controller('ProductController', ['shareBtwnCtrlrService', 'productService', function (shareBtwnCtrlrService, productService) {
// ...do something
}]);