Я создал службу, но я не понимаю, как использовать эту службу в моем контроллере.
(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;
}
})();
К контроллерам и директивам модуля можно вводить только сервис в одном модуле.
Новый модуль должен быть добавлен в приложение, чтобы расширить его возможности.
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
}]);
У вас есть два модуля, поэтому инжекторы зависимостей не могут вводить ваш сервис из app.core в app.product. Попробуйте создать новый модуль
var app = angular.module('app', ['app.core','app.product']);
а потом
angular.module('app').factory('shareBtwnCtrlr', shareBtwnCtrlrService);
$rootScope.test
в другом контроллере?shareBtwnCtrlr
используяvar
. Это может вызвать ошибку