2014-09-21 58 views
0

我是usnig AngularJs 1.2.25。我有一個路由配置:使用angularjs時重複控制器

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

在ClientCOnfig控制器,我有一個模板$ scope.listConfig變量綁定創建,更新配置的列表。

一切正常,當我第一次訪問「config-root」路由時,我可以生成,更新...列表。

但是當第二次或那麼遠時,$ scope.listConfig在生成列表時更新正確,更新...但模板不會更改。

我想當我再次訪問該路由時,創建了$ scope的新實例,並且不與該模板綁定。

我該如何解決?

回答

0

您可以使用rootScope保留下次的值。

$scope更改爲$ rootScope,並在需要時訪問它。

如果您不想污染$ rootScope,則只需將值存儲在localStorage中作爲字符串並在需要時將其提取。

// To store the value 
localStorage['config'] = JSON.stringify(someObj) 
// To fetch the value 
var myConfigObj = JSON.parse(localStorage['config']) 
+0

謝謝你的回答,但我認爲這個解決方案不是我的需要。因爲$ rootScope是全局的,所以不適合管理變量。如果使用localStorage,我不能使用angularjs的數據綁定。 – ronin1184 2014-09-21 14:05:19

+0

比你可以使用常量,你可以注入到任何控制器。參考angularjs常量。 – Siddhartha 2014-09-21 16:50:33