나는 서비스 메소드를 가지고 있으며, boolean 변수의 값을 변경하고 (false는 디폴트 값) 컨트롤러로 돌아 간다. 버튼을 클릭하여이 서비스 메소드를 호출합니다.angularJS 서비스 싱글 톤입니까?
이 버튼을 클릭하면 변수 값이 true로 간주됩니다. 지금은 다른 하나의 컨트롤러에서이 동일한 서비스 메소드에 액세스하고 있으며 false입니다. 왜?
뭐가 잘못 되었나요? 당신이 ,
으로 두 가지 기능을 분리하고 있습니다 : 당신이 오타를 가지고있는 것처럼
첫 번째 컨트롤러,
.controller('myController1',....
$scope.value = false;
$scope.buttonClick = function(){
$scope.value = myService.setValue(value);
}
초 컨트롤러,
.controller('myController2',.....
$scope.value = myService.getValue();
서비스,
angular.module('myModule', [])
.service('myService', ['OtherTypes',
function (OtherTypes) {
var myServiceVariable = false;
return {
setValue: function (value) {
myServiceVariable = !value;
return (myServiceVariable);
},
getValue: function() {
return myServiceVariable;
}
}
}
]);
예, 각 서비스는 싱글 톤 갈 수 있습니다. 코드에 문제가있는 것 같습니다. :) 일부 코드 붙여 넣기 : – dhavalcengg
DI를 사용하여 컨트롤러에서 서비스를 얻고 있습니까? –
예, 컨트롤러에 서비스를 주입 중입니다. 나는 내 질문을 업데이 트했습니다 .pls 다시 참조하십시오. – Dosti