我使用以下代码更改URL而不在AngularJS中重新加载。但是当我使用这个功能时,如果我从这个控制器转到其他状态,它会重新初始化同一个控制器。我们如何在AngularJS中再次避免重新初始化同一个控制器。
州改变方法
completion
我怀疑此功能导致AngularJS中的控制器重新初始化问题。如果这是问题,我该如何解决控制器重新初始化?
答案 0 :(得分:1)
这是Angular的工作原理。每次更改状态时都会重新初始化控制器。如果您有跨州共享的数据,则应将其放在服务或工厂中,然后在控制器中引用它。
示例:
<强>控制器强>
angular.module('Test')
.controller('TestController', ['TestService', TestController]);
function TestController(TestService) {
var self = this;
self.data = TestService.sharedData;
}
<强>服务强>
angular.module('Test')
.service('TestService', [TestService]);
function TestService() {
var self = this;
self.sharedData = ['array', 'of', 'data'];
}