Providers に関する Angular のドキュメントに従って、値を保存するだけの場合は、 Value レシピを使用する必要があります。
var myApp = angular.module('myApp', []);
myApp.value('clientId', 'a12345654321x');
次に、次のようにコントローラーで使用します。
myApp.controller('DemoController', ['clientId', function DemoController(clientId) {
this.clientId = clientId;
}]);
Provider、Factory、または Service を使用して同じことを達成できます。これは、「プロバイダー レシピの上に構文糖衣を加えたものに過ぎない」ためですが、Value を使用すると、最小限の構文で目的を達成できます。
他のオプションは を使用する$rootScope
ことですが、他の言語でグローバル変数を使用しないのと同じ理由で使用しないでください。控えめに使用することをお勧めします。
すべてのスコープは から継承されるため$rootScope
、変数があり、それがすでに定義され$rootScope.data
ていることを誰かが忘れて、ローカル スコープで作成すると、問題が発生します。data
$scope.data
この値を変更し、すべてのコントローラーで永続化する場合は、オブジェクトを使用してプロパティを変更し、Javascript は「参照のコピー」によって渡されることに注意してください。
myApp.value('clientId', { value: 'a12345654321x' });
myApp.controller('DemoController', ['clientId', function DemoController(clientId) {
this.clientId = clientId;
this.change = function(value) {
clientId.value = 'something else';
}
}];
JSFiddle の例