문제

앱의 상태를 최신 상태로 유지하는이 서비스가 있습니다.

'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;
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top