공급자 의 Angular 설명서에 따라 값을 저장 하려면 값 레시피를 사용해야합니다.
var myApp = angular.module('myApp', []);
myApp.value('clientId', 'a12345654321x');
그런 다음 다음과 같은 컨트롤러에서 사용하십시오.
myApp.controller('DemoController', ['clientId', function DemoController(clientId) {
this.clientId = clientId;
}]);
제공자, 팩토리 또는 서비스는 "프로 바이더 레시피 위에 구문 설탕"이기 때문에 동일한 것을 얻을 수 있지만 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 예제