Дублирующий контроллер при использовании angularjs

Я использую AngularJs 1.2.25. У меня есть конфигурация маршрута:

$routeProvider.when(
    '/config-root',
    { 
        templateUrl: configRootTemplate,
        controller: "ClientConfig",
    }
).when(
    '/config-action/:action/:_id',
    { 
        templateUrl: configActionTemplate, 
        controller: "ClientConfigAction",
    }
).otherwise({redirectTo: '/'});

В контроллере ClientCOnfig у меня есть привязка переменной $scope.listConfig к шаблону для создания, обновления списка config.

Все в порядке, когда я впервые посещаю маршрут «config-root», я могу сгенерировать, обновить... список.

Но когда во второй раз или до сих пор, $scope.listConfig правильно меняется при создании списка, обновлении... но шаблон не меняется.

Я думаю, что когда я снова посещаю этот маршрут, создается новый экземпляр $scope, который не связывается с шаблоном.

Как я могу это исправить?


person ronin1184    schedule 21.09.2014    source источник


Ответы (1)


Вы можете использовать rootScope, чтобы сохранить значение для следующего раза.

измените этот $scope на $rootScope и получите к нему доступ, когда это потребуется.

Если вы не хотите загрязнять $rootScope, вы можете просто сохранить значения в localStorage в виде строки и извлекать их, когда это необходимо.

// To store the value 
localStorage['config'] = JSON.stringify(someObj)  
// To fetch the value 
var myConfigObj = JSON.parse(localStorage['config'])
person Siddhartha    schedule 21.09.2014
comment
Спасибо за ваш ответ, но я думаю, что это решение мне не нужно. Поскольку $rootScope является глобальным, он не подходит для управления переменными. При использовании localStorage я не могу использовать привязку данных angularjs. - person ronin1184; 21.09.2014
comment
Затем вы можете использовать константы, которые вы можете ввести в любой контроллер. Обратитесь к константам angularjs. - person Siddhartha; 21.09.2014