javascript - 以一种绑定(bind) ng-repeat 的方式重新渲染数据

标签 javascript css html

我在 ng-repeat 中使用单向绑定(bind)。我仍然想在数组值更改时刷新 ng-repeat 。

请提出您的想法:

示例:

<html ng-app="todoApp">

<head>
  <title>
    TO DO List
  </title>
  <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootswatch/3.1.1/readable/bootstrap.min.css">
  <link rel="stylesheet" href="style.css">
  <script data-require="angular.js@*" data-semver="1.3.1" src="//code.angularjs.org/1.3.1/angular.js">
  </script>
  <script>
    var todoApp = angular.module("todoApp", []).config(function($compileProvider, $httpProvider) {
      $compileProvider.debugInfoEnabled(true);
    });

    todoApp.controller("ToDoCtrl", function($scope) {

      $scope.data = [12, 23, 45, 67, 89];
      $scope.add = function(dtata) {
        $scope.data.push(dtata);
      }
    });
  </script>

</head>

<body ng-controller="ToDoCtrl">

  <!-- ...elements omitted for brevity... -->

  <div class="panel">
    <div class="input-group">
      <input class="form-control" />
      <input type="text" ng-model="numberData" />
      <button type="submit" ng-click="add(numberData)">
        add
      </button>
    </div>
    <table class="table table-striped">
      <thead>
        <tr>
          <th>
            Numbers
          </th>
        </tr>
        <tr ng-repeat="de in ::data">
          <th>
            {{::de}}
          </th>
        </tr>
      </thead>
      <tbody>
      </tbody>
    </table>
  </div>
</body>

</html>

代码可以在Plnkr处找到。

最佳答案

使用“::”语法用于一次性绑定(bind),不应与单向绑定(bind)相混淆。 ng-repeat 本质上是一种方式。也就是说,添加dom元素并不会神奇地将数据项添加到模型中。一次性绑定(bind)的真正目的是通过明确声明用于渲染的数据不会改变(或者如果改变了,我们也不会关心)来提高 Angular 的摘要循环的性能。

话虽如此,您可以从 {{::de}} 中删除 :: 以消除检查每个元素是否发生更改的开销。如果数据变得非常大,这将避免性能下降。

关于javascript - 以一种绑定(bind) ng-repeat 的方式重新渲染数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29828705/

相关文章:

html - 标记 <a> 在相对定位的 block 上不可点击

html - Google 分析出现问题,拒绝连接,因为它违反了以下内容安全政策指令

javascript - 为什么 jquery 代码没有在 jsfiddle 中运行

javascript - 将图像代码更改为 @2x 版本以用于高 DPI 显示

html - 中间对齐包含字形图标和面包屑的 div

html - 将鼠标悬停在不同 div 中的链接上时如何隐藏图像

javascript - 如何在标题末尾停止滚动并继续滚动内容?

javascript - 在 Javascript 中修改事件对象

javascript - 如果尝试重定向用户,则在新选项卡中打开 iframe 源

javascript - 使用点击功能检查多个div中的数据属性值