AngularJS genel değişkenler
Bir denetleyici kapsamında bir değişken başlatılıyor olduğum bir sorunum var. Bir kullanıcı oturum açtığında başka bir denetleyici içinde değişmiş olur. Bu değişken gezinti çubuğu gibi şeyleri kontrol etmek için kullanılır ve sitenin kullanıcı türüne bağlı olarak, değeri tutan çok önemli bir kısmına erişimi kısıtlar. Bu sorun initialises, yine açısal bir tarafından çağrılır ve sonra başlangıç değerine geri değişkeni sıfırlar denetleyicisi.
Sanırım bu değil doğru yolu bildirmek ve paraflanması genel değişkenler, onun iyi değil, çok genel, yani benim soru ne kadar doğru ve iyi örnekler etrafında çalışmaları ile güncel sürüm açısal?
CEVAP
İçin temelde 2 seçenek var "global" değişkenler:
$rootScope
http://docs.angularjs.org/api/ng.$rootScope Bir kullanın- bir hizmet http://docs.angularjs.org/guide/services kullanın
$rootScope
değerler açıkta tüm şablonları ve denetleyicileri görünür olacak, böylece tüm kapsamları bir ebeveyn. $rootScope
kullanarak sadece herhangi bir denetleyici içine enjekte ve bu kapsamda değerleri değiştirebilirsiniz çok kolay. Kullanışlı olabilir ama problems of global variables vardır.
Hizmetleri herhangi bir denetleyici için enjekte ve bir kontrolörün kapsamında değerlerine getirebilir bu tekiz. Hizmetleri olmak tekiz hala 'küresel' ama o kullanılan ve açıkta olduğu üzerinde daha iyi kontrol var.
Hizmetleri kullanarak biraz daha karmaşıktır, ama o kadar değil, işte bir örnek:
var myApp = angular.module('myApp',[]);
myApp.factory('UserService', function() {
return {
name : 'anonymous'
};
});
ve bir denetleyici: sonra
function MyCtrl($scope, UserService) {
$scope.name = UserService.name;
}
Burada işçi jsFiddle: http://jsfiddle.net/pkozlowski_opensource/BRWPM/2/
R Genel değişkenler...
Birden fazla dosya üzerinde Javascript...
Fonksiyon genel değişkenler Python?...
Kimlikleri ile DOM ağaç elemanları gen...
C genel değişkenler paylaşılan...