Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在AngularJS中更改URl而不重新加载_Angularjs_Angular Ui Router - Fatal编程技术网

在AngularJS中更改URl而不重新加载

在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,

我正在使用以下代码更改URL,而无需在AngularJS中重新加载。但是当我使用这个函数时,如果我从这个控制器转到其他状态,它将重新初始化同一个控制器。如何避免在AngularJS中再次初始化同一控制器

状态变换法

 $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'];
}