我有一个在某些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)或者有没有办法可以编写只执行一次的代码和平?
答案 0 :(得分:3)
将“运行一次”代码放入service,然后返回承诺。
将该服务注入您的控制器。
有关服务创建然后返回承诺的示例,然后控制器使用该承诺,请参阅Should services expose their asynchronicity?