javascript - 双向绑定(bind)不适用于 ng-repeat

标签 javascript angularjs ng-repeat angular-ngmodel 2-way-object-databinding

我有一个简单的 ng-repeat 列表,我在其中将当前列表项值分配给 Controller 上的另一个属性,如下所示:

  <li ng-repeat="num in list">
    <input type="text" ng-init="value = num" ng-model="value" />
    <button type="button" class="btn btn-primary" ng-click="save()">Save</button>
  </li>

但是当我点击“保存”按钮时,我得到了 $scope.value 的默认值设置。我希望显示特定输入文本的值。

这是 Controller :

 angular.module('myApp', [])
    .controller('MyController', function($scope){
      $scope.value = false;
      $scope.list = [0, 1, 2, 3, 4];
      
      $scope.save = function() {
         alert($scope.value);
      }
    });

我如何在调用保存函数时访问 Controller 中输入项的更新值。

这是相同的插件:plnkr

更新:我希望在不将其作为参数传递的情况下将值提取到 Controller 。

最佳答案

哇,我不敢相信大多数人都错过了这一点。如果您使用的是 Angular 1.2,那么您绝对应该检查 ngRepeat 指令中的 track by 关键字。

<li ng-repeat="num in list track by $index">
    <input type="text" ng-model="list[$index]" />
    <button type="button" class="btn btn-primary" ng-click="save()">Save</button>
</li>

底线在绑定(bind)时远离原始类型,因为它会给您带来同步问题。

伙计们,请花更多的时间和精力研究您的解决方案,而不仅仅是发帖求积分。

希望这对您有所帮助!

关于javascript - 双向绑定(bind)不适用于 ng-repeat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29261507/

相关文章:

javascript - 分组 ng-repeat 和修改 DOM 外部指令

javascript - 将 iOS 模块从 pod 导入 nativescript 插件

javascript - 无法从 .getDownloadURL() promise 中检索 Firebase downloadURL

javascript - AngularJS:删除 Aria 属性

javascript - 通过更改 css top 在 div 动画中垂直滚动

angularjs - ng-repeat 带有复选框并捕获值

AngularJS ng-repeat 重复元素

javascript - 如何在 github pages repo 中读取和写入 JSON 文件?

javascript - FullPage.js 自动向上滚动

angularjs - 使用 AngularJS addClass/removeClass 的动画序列