새 값을 가져 오지 않는보기
-
20-12-2019 - |
문제
앱의 상태를 최신 상태로 유지하는이 서비스가 있습니다.
'use strict';
angular.module('reportApp')
.service('Status', function Status() {
this.appStatus = {};
// Status
this.get = function(){
this.appStatus = {
menu:{
right:{
activeOption: 'datax'
},
left:{
}
},
section:{
selectedSection: null
}
};
return this.appStatus;
};
this.setActiveOptionRightMenu = function(menu){
this.appStatus.menu.right.activeOption = menu.id;
};
this.setActiveSection = function(section){
this.appStatus.section.selectedSection = section;
};
// ####################################
});
.
내 주재 컨트롤러에서 다음과 같습니다.
$scope.openRightMenu = function(menu){
Status.setActiveOptionRightMenu(menu);
$scope.menu = Status.get().menu;
};
$scope.menu = Status.get().menu;
.
첫 번째 순간에 컨트롤러로드가 올바른 기본값을 가져옵니다.
$scope.menu = Status.get().menu;
.
첫 번째 순간에 igptoption : 'datax'을 기대하고 있습니다.그러나 이벤트를 클릭하면 openrightmenu view를 클릭하면 뷰가 새 값을 업데이트하지 않습니다. setActiveOptionRightMenu 안에 중단 점을 넣으면 새 값을 볼 수 있지만보기처럼 보이면 새 값을 무시하고 이전 하나를 계속 사용하십시오.
해결책
GET 함수에서 this.appStatus
를 무시하고 있습니다.
// Status
this.get = function(){
this.appStatus = {
menu:{
right:{
activeOption: 'datax'
},
left:{
}
},
section:{
selectedSection: null
}
};
return this.appStatus;
};
.
이것은 항상 이 Object의 객체를 'Datax'로 정의 된 ActiveOption과 함께 반환합니다.GET 함수 외부의 기본값으로 정의하거나 in null인지 확인하는 것을 확인해야합니다.
// Status
this.appStatus = {
menu:{
right:{
activeOption: 'datax'
},
left:{
}
},
section:{
selectedSection: null
}
};
this.get = function(){
return this.appStatus;
}
. 제휴하지 않습니다 StackOverflow