javascript - 在 ng-repeat block 中无限调用函数

标签 javascript angularjs

我有一个 Controller ,我在其中在页面上显示一个列表。我必须根据其中存在的一些标志来消除一些列表项。因此,我编写了一个简单的函数,它将返回一个 bool 值,并在 ng-show 指令中使用该值来隐藏项目。该函数在 ng-repeat block 中被多次调用。我的理解是,如果我的数组长度是 n,那么函数应该只被调用 n 次,除非数组内容/长度发生改变。

<ul>
<li ng-repeat="item in items" ng-show="display(item)">{{item.name}}</li>
</ul>

我的显示函数看起来像这样

display = function(item)
{
    if(item.flag) 
       return true
    else 
       return false;
}

最佳答案

我会尽力确保任何函数调用都在 Controller 范围内

即。 $scope.display 但是,以下内容可能有助于使其更清晰。

<!-- iterate elements in items, ie. {name: "a", flag: true} -->
<ul>
  <li ng-repeat="item in items" ng-show="item.flag">{{item.name}}</li>
</ul>

并且从那时起就没有函数调用,ng-show从item.flag读取 bool 值

  $scope.items = [
    {name: "a", flag: true},
    {name: "b", flag: true},
    {name: "c", flag: false}
  ];

输出是..

a
b

希望这有帮助。

关于javascript - 在 ng-repeat block 中无限调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29798620/

相关文章:

javascript - 为什么我收到此错误 : Uncaught TypeError: cannot read property 'john' of undefined

php - 对 PHP 的非阻塞 Ajax 请求

javascript - 使滚动条不可见而不删除它 - Windows 浏览器

javascript - 如何在 ES6 模块中导入部分对象

javascript - NodeJS 需要一个文件中的所有模块,好的做法?

javascript - 在函数内 react useEffect 陈旧值

angularjs - 如何在 AngularJS 指令中访问全局 js 变量

javascript - UI-Router过滤Json数据

javascript - Angularjs 在新的弹出窗口中显示 pdf/图像文件

javascript - jQuery 和 Bootstrap 3 : TypeError: "Object [object HTMLAnchorElement] has no method ' preventDefault'