내 페이지에 버튼이 있으며 컨트롤러의 변수에 따라 해당 텍스트 (OFF/ON)가 변경됩니다. 기본적으로 변수 값은 false이므로 텍스트가 ON이됩니다. 사용자가이 버튼을 클릭하면 변수 값이 true가되고 텍스트가 꺼집니다.angularJS의 범위 변수를 기반으로 버튼 텍스트를 변경하십시오.
다른 하나의 버튼을 통해 팝업 창이 열리고 거기에 동일한 버튼이 있습니다. 이 창은 동일한 컨트롤러를 사용합니다.
문제는, 버튼 텍스트를 클릭하여 변경하면 팝업 창에 반영되어야한다는 것입니다. 팝업 창의 변경 사항은 메인 페이지에 반영되어야합니다.
.controller('myController', ['$scope', 'myService',
function ($scope, myService) {
$scope.btnText = myService.getTextState();
};
$scope.toggleText = function(){
$scope.btnText = myService.toggleText($scope.toggleText);;
};
$scope.getTitle = function() {
if($scope.btnText){
return "OFF";
}
else{
return "ON";
}
};
]);
.service('plotPanelService', function() {
var btnText = false;
toggleText: function (param) {
btnText = !param;
return (!param);
},
setTextState: function (paramText) {
btnText = paramText;
},
getTextState: function() {
return btnText;
}
}
나는 새 창을 이슈] 부상, 컨트롤러가 초기화됩니다. 그렇다면 서비스 인스턴스가 메인 페이지에서 할당 한 이전 값을 어떻게 반환할까요? – Dosti
서비스가 한 번만 초기화됩니다. 이것이 다중 컨트롤러가 동일한 서비스 포인터를 갖는 이유입니다. 그래서 여러분이 쓴 것은 두 컨트롤러가 공유하게 될 것입니다. – dhavalcengg
내 코드가 업데이트되었습니다. 메인 창에서 처음에는 텍스트가 "켜기"로 바뀌고 "꺼짐"으로 바뀌고 팝업을 열면 다시 "켜짐"으로 표시됩니다 – Dosti