在AngularJS中更改URl而不重新加载
我正在使用以下代码更改URL,而无需在AngularJS中重新加载。但是当我使用这个函数时,如果我从这个控制器转到其他状态,它将重新初始化同一个控制器。如何避免在AngularJS中再次初始化同一控制器 状态变换法在AngularJS中更改URl而不重新加载,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我正在使用以下代码更改URL,而无需在AngularJS中重新加载。但是当我使用这个函数时,如果我从这个控制器转到其他状态,它将重新初始化同一个控制器。如何避免在AngularJS中再次初始化同一控制器 状态变换法 $state.transitionTo(url, {paramType:type,resultquery:parameter}, { location: true, inherit: true, notify: false,
$state.transitionTo(url, {paramType:type,resultquery:parameter}, {
location: true,
inherit: true,
notify: false,
});
我怀疑这个函数导致了AngularJS中的控制器重新初始化问题。如果这是问题所在,我如何解决控制器重新初始化问题?这就是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'];
}