【问题标题】:ng-repeat one-time binding inheritance?ng-repeat 一次性绑定继承?
【发布时间】:2018-04-18 20:56:18
【问题描述】:

如果我有一个 ng-repeat 指令通过 one-time 绑定遍历列表列表,那么通过每个内部列表的嵌套 ng-repeat 是否也需要一次性绑定,还是多余的?

<div ng-repeat="list in ::$ctrl.lists">
  <span ng-repeat="item in list">{{item}}</span>
</div>

是否需要将内部ng-repeat 更改为item in ::list$ctrl.lists 永远不会以任何方式改变。

【问题讨论】:

  • 您需要在所有一次性绑定的地方指定一次性绑定,否则将创建永久绑定。

标签: angularjs angularjs-ng-repeat one-time-binding


【解决方案1】:

没有指定继承,事件如果绑定了数组,数组内的对象还是可以改变的,所以span循环最好也放'::'。

http://jsfiddle.net/vw2fjxys/64/

var a = [1,2,3]
    setTimeout(function(){
    console.log(2)
        a.length = 2
      $scope.$apply();
    },3000)
$scope.lists = [a];

您可以在 2 秒后在示例中看到,使用 :: 它不会为内部循环重新计算,但如果没有它。

【讨论】:

    猜你喜欢
    • 2018-10-01
    • 2014-07-17
    • 2016-08-20
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 2017-11-01
    • 1970-01-01
    相关资源
    最近更新 更多