Angular.js无限循环调用函数

阿玛克

我的问题在以下模板中:

<div class="container">
<h1>Process Definitions</h1>
 <table class="table table-stripped" >
    <tr>
      <td><strong>Name</strong></td>
    <td><strong>Id</strong></td>
    <td><strong>Version</strong></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr ng-repeat="def in defs | filter: global.search">
    <td>{{def.name}}</td>
    <td>{{def.id}}</td>
    <td>{{def.version}}</td>
    <td><button type="button" class="btn btn-warning" ng-click="redirectToInstance(def.id)">Instances</td>
    <!--<td><h4><small>{{'Current :' + getCount(def.id) }}</small></h4></td>-->
    <td><button type="button" class="btn btn-warning" ng-click="redirectToTasks(def.id)">Tasks</td>
  </tr> 
</table>
</div>

问题是注释标记内表达式内部的函数调用。

调用的函数在此控制器中:

BPMNControllers.controller('ProcessDefinitionCtrl', ['$scope','$location',  'ProcessDefinitions','ProcessInstances',
 function($scope,$location, ProcessDefinitions,ProcessInstances) {
$scope.defs = ProcessDefinitions.query();
$scope.redirectToInstance = function(id){$location.path('/process-definitions/' + id);};
$scope.redirectToTasks = function(id){$location.path('/tasks/def'+id)};
$scope.getCount = function (id){
    var countObj = ProcessInstances.getCount({processDefinitionId : id});
    return countObj.count;
    };
console.log('ProcessDefinitionCtrl');
  }]);

以下服务很重要,因为它正在查询rest-api。

BPMNServices.factory('ProcessInstances', ['$resource','restUrl',
function($resource,restUrl){
var url = restUrl+'engine-rest/process-instance/:id'
return $resource(url,{id:'@id'},{
  query :       {method:'GET',isArray:true},
  get :         {method:'GET'},
  getCount :    {method:'GET',url:restUrl+'engine-rest/process-instance/count'}
},{})

}]);

这导致ajax调用无限循环。我想我知道问题是异步调用,并且由于它没有直接绑定,因此调用不够快,因此被调用并再次调用。我怎样才能做到这一点?

以及所要求的ProcessDefinitions:

BPMNServices.factory('ProcessDefinitions', ['$resource','restUrl',
function($resource,restUrl){
var url = restUrl + 'engine-rest/process-definition/:id'
return $resource(url, {id : '@id'}, {
  query:    {method:'GET', isArray:true},
  get :     {method:'GET'},
  start:    {method:'POST',url:url+'/start'}
},{});
}]);

以及全局搜索过滤器的模型:

                  <input type="text" class="form-control" placeholder="Search" ng-model="global.search">
马克·克莱恩

无限循环是您观看的视图表达式调用一个函数的结果,该函数本身导致触发$ digest循环。

带有Angular表达式绑定的无限循环中提供了一个很好的解释和另一个示例

至于您的特定代码,可以使用指令代替视图表达式:

的HTML

  <!-- results in infinite digest Count: {{getCount(def.id)}} -->
  Count: <count></count>

JS

.directive('count', function(ProcessInstances){
  return {
    restrict: 'E',
    replace: true,
    link: function(scope) {
      scope.countRes = ProcessInstances.getCount(scope.def.id);
    },
    template: '<span>{{countRes.count}}</span>'
  }
});

演示版

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular.js无限循环调用函数

来自分类Dev

为什么在无限循环中调用我的Angular函数?

来自分类Dev

Angular JS路由使无限循环

来自分类Dev

用angular.js在无限循环中调用document.ready

来自分类Dev

带Ajax调用的Angular表达式绑定的无限循环

来自分类Dev

Angular - 模板中调用的模型方法在无限循环中执行

来自分类Dev

Angular JS页面加载触发无限页面加载循环

来自分类Dev

angular 5 调用函数绑定类会导致函数被无限次调用

来自分类Dev

在循环中调用 API - Angular js

来自分类Dev

angular6 - 当我从模板内的 Angular 6 类调用方法时无限循环运行

来自分类Dev

调用函数时 AngularJS 无限循环调用?

来自分类Dev

模板内的函数被多次调用(Angular JS)

来自分类Dev

Angular js工厂调用“不是函数”

来自分类Dev

Angular JS工厂调用“不是函数”

来自分类Dev

渲染Angular指令后调用js函数

来自分类Dev

在 angular js 中正确调用函数的困难

来自分类Dev

调用函数时Fortran无限循环

来自分类Dev

Angular.js-首次调用后函数开始递归调用

来自分类Dev

IE11-使用ui-router在angular js中实现无限$ digest循环

来自分类Dev

Express + Angular路由导致无限循环+崩溃

来自分类Dev

Angular 应用程序陷入无限循环

来自分类Dev

从index.html调用函数,并且该函数无限循环

来自分类Dev

从index.html调用函数,并且该函数无限循环

来自分类Dev

控制器中的Angular.js调用指令函数

来自分类Dev

Angular.js在指令中调用jquery函数

来自分类Dev

Angular.JS onclick函数仅在首次单击时调用

来自分类Dev

从Angular应用程序调用Node.js中的函数

来自分类Dev

不属于范围的模板中的Angular JS调用函数

来自分类Dev

使用其参数在angular js中调用函数

Related 相关文章

  1. 1

    Angular.js无限循环调用函数

  2. 2

    为什么在无限循环中调用我的Angular函数?

  3. 3

    Angular JS路由使无限循环

  4. 4

    用angular.js在无限循环中调用document.ready

  5. 5

    带Ajax调用的Angular表达式绑定的无限循环

  6. 6

    Angular - 模板中调用的模型方法在无限循环中执行

  7. 7

    Angular JS页面加载触发无限页面加载循环

  8. 8

    angular 5 调用函数绑定类会导致函数被无限次调用

  9. 9

    在循环中调用 API - Angular js

  10. 10

    angular6 - 当我从模板内的 Angular 6 类调用方法时无限循环运行

  11. 11

    调用函数时 AngularJS 无限循环调用?

  12. 12

    模板内的函数被多次调用(Angular JS)

  13. 13

    Angular js工厂调用“不是函数”

  14. 14

    Angular JS工厂调用“不是函数”

  15. 15

    渲染Angular指令后调用js函数

  16. 16

    在 angular js 中正确调用函数的困难

  17. 17

    调用函数时Fortran无限循环

  18. 18

    Angular.js-首次调用后函数开始递归调用

  19. 19

    IE11-使用ui-router在angular js中实现无限$ digest循环

  20. 20

    Express + Angular路由导致无限循环+崩溃

  21. 21

    Angular 应用程序陷入无限循环

  22. 22

    从index.html调用函数,并且该函数无限循环

  23. 23

    从index.html调用函数,并且该函数无限循环

  24. 24

    控制器中的Angular.js调用指令函数

  25. 25

    Angular.js在指令中调用jquery函数

  26. 26

    Angular.JS onclick函数仅在首次单击时调用

  27. 27

    从Angular应用程序调用Node.js中的函数

  28. 28

    不属于范围的模板中的Angular JS调用函数

  29. 29

    使用其参数在angular js中调用函数

热门标签

归档