Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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
Javascript 如何使控制器函数在AngularJS中只执行一次?_Javascript_Angularjs - Fatal编程技术网

Javascript 如何使控制器函数在AngularJS中只执行一次?

Javascript 如何使控制器函数在AngularJS中只执行一次?,javascript,angularjs,Javascript,Angularjs,我有一个在一些html中引用的控制器。html会在某些事件中更改,因此控制器功能代码会执行多次。 问题是,我有一个只需要执行一次的代码和平。 这是控制器: angular.module("someModule", [dependencies]) .controller("leftBoardController", function ($scope, someService) { (function createFilter(dataService) { // here I'm lo

我有一个在一些html中引用的控制器。html会在某些事件中更改,因此控制器功能代码会执行多次。
问题是,我有一个只需要执行一次的代码和平。
这是控制器:

angular.module("someModule", [dependencies])
.controller("leftBoardController", function ($scope, someService) {
   (function createFilter(dataService) {
    // here I'm loading all the data on which I want to operate after
            // this code should execute only once
    })(TempEmployeeService);
}
但它会在每次html更改时执行。
以下是插入控制器的方式:

<section ng-controller="TreeMapController"
                 ng-class="{ 'main-container-single': zoomed }"
                 class="minContainer main-container">

问题:
1) 如何使控制器功能只执行一次?
2) 或者有没有一种方法可以让我编写这种只执行一次的代码

将您的“运行一次”代码放入,并返回一个承诺

将该服务注入控制器


有关服务创建并返回承诺,然后控制器使用该承诺的示例,请参见

html更改是什么意思??你的意思是说你的页面的一部分在上面提到的一节中发生了变化还是整个页面发生了变化。我在代码中更改url,html也会更改(页面不会重新加载),如果页面被刷新/加载/加载,控制器将再次被调用-这就是预期的结果。我使用数组变量进行了更改,这对我来说更容易理解