使用angularjs时复制控制器
我是usnig AngularJs 1.2.25。我有一个路由配置:使用angularjs时复制控制器,angularjs,angularjs-routing,angularjs-controller,Angularjs,Angularjs Routing,Angularjs Controller,我是usnig AngularJs 1.2.25。我有一个路由配置: $routeProvider.when( '/config-root', { templateUrl: configRootTemplate, controller: "ClientConfig", } ).when( '/config-action/:action/:_id', { templateUrl: configActionT
$routeProvider.when(
'/config-root',
{
templateUrl: configRootTemplate,
controller: "ClientConfig",
}
).when(
'/config-action/:action/:_id',
{
templateUrl: configActionTemplate,
controller: "ClientConfigAction",
}
).otherwise({redirectTo: '/'});
在ClientCOnfig控制器中,我有一个$scope.listConfig变量与模板绑定,用于创建、更新配置列表
一切正常当我第一次访问“配置根”路由时,我可以生成、更新。。。名单
但当第二次或到目前为止,$scope.listConfig在生成列表时正确更改时,请更新。。。但模板不会改变
我认为当我再次访问该路由时,会创建一个$scope的新实例,并且不会与模板绑定
如何修复它?您可以使用rootScope为下次保存该值 将
$scope
更改为$rootScope,并在需要时访问它
// To store the value
localStorage['config'] = JSON.stringify(someObj)
// To fetch the value
var myConfigObj = JSON.parse(localStorage['config'])
如果不想污染$rootScope,可以将值作为字符串存储在本地存储中,并在需要时获取它
// To store the value
localStorage['config'] = JSON.stringify(someObj)
// To fetch the value
var myConfigObj = JSON.parse(localStorage['config'])
谢谢你的回答,但我认为这个解决方案不是我需要的。因为$rootScope是全局的,所以不适合管理变量。如果使用localStorage,我不能使用angularjs的数据绑定。您可以使用可以注入任何控制器的常量。参考angularjs常量。