Yalnızca bir değeri saklamak istiyorsanız , Sağlayıcılardaki Açısal belgelere göre , Değer tarifini kullanmalısınız:
var myApp = angular.module('myApp', []);
myApp.value('clientId', 'a12345654321x');
Sonra böyle bir denetleyicide kullanın:
myApp.controller('DemoController', ['clientId', function DemoController(clientId) {
this.clientId = clientId;
}]);
Aynı şey, bir Sağlayıcı, Fabrika veya Hizmet kullanılarak da sağlanabilir, çünkü bunlar sadece bir sağlayıcı tarifinin üstünde sadece sözdizimsel şekerdir, ancak Value'i kullanmak en az sözdizimi ile istediğinizi elde edecektir.
Diğer seçenek kullanmaktır $rootScope
, ancak gerçekten bir seçenek değildir, çünkü aynı nedenlerle kullanmamalısınız, global değişkenleri diğer dillerde kullanmamalısınız. Onun az kullanılması tavsiye edilir .
Tüm kapsamlar devralındığından $rootScope
, bir değişkeniniz varsa $rootScope.data
ve data
daha önce tanımlanmış ve $scope.data
yerel bir kapsamda oluşturulan birini unutursanız sorun yaşarsınız.
Bu değeri değiştirmek ve tüm denetleyicilerinizde kalıcı olmasını istiyorsanız, bir nesne kullanın ve özellikleri göz önünde bulundurarak değiştirin Javascript "başvurunun kopyası" ile geçirilir :
myApp.value('clientId', { value: 'a12345654321x' });
myApp.controller('DemoController', ['clientId', function DemoController(clientId) {
this.clientId = clientId;
this.change = function(value) {
clientId.value = 'something else';
}
}];
JSFiddle örneği