我想在不同的组件之间共享一个特定的属性(它们中的不同控制器)。
尝试注入我在app模块中创建的服务。该服务具有get / set功能。我创建了名为SharedProperties的服务。它不能从我的应用程序中的任何组件访问,“Uknown”说。为什么?
这就是我的应用程序的定义方式,这是非常简单的服务。
mapotApp = angular
.module('mapotApp', [])
.service('sharedProperties', function () {
var property = 'test';
return {
getProperty: function () {
return property;
},
setProperty: function(value) {
property = value;
}
};
});
然后在我的组件中:
angular.module('aboutPage').component('aboutPage', {
templateUrl: 'app/about-page/about-page.html',
controller: ['sharedProperties', function AboutPageController($http, $scope, sharedProperties) {
var self= this;
//inherting global variable
self.prop = sharedProperties.getProperty(); //UNKOWN PROVIDER ERROR HERE
}]
});
返回:
Error: [$injector:unpr] Unknown provider: sharedPropertiesProvider <- sharedProperties
我能做什么?我尝试在很多地方注射它仍然无法正常工作。非常感谢。
这是与你的代码一起工作的DEMO。
您的可共享服务是正确的,但请确保正确初始化您的控制器,并正确注入$http
和$scope
(请参阅我的演示中如何注入$scope
和$timeout
服务)。