javascript - AngularJS 添加表示数组模型的输入

标签 javascript angularjs

我无法理解的简单 AngularJS 问题。

Plunkr:http://plnkr.co/edit/OjaooVOQBEETkhaZFbWG?p=preview

HTML;

    <div ng-repeat="label in likedLabels">
         <input ng-model="likedLabels[$index]">
    </div>
    {{likedLabels}}
    <button ng-click="addInput()">+add more inputs</button>

JS:

   $scope.likedLabels = ['']
   $scope.addInput = function(){
     $scope.likedLabels.push('');
   }

我基本上试图创建一种用户操作的方式来添加输入框并将其中的内容链接到模型。我在这里做错了什么?

最佳答案

在数组中使用对象而不是基元。像 ng-repeat 这样的指令为数组中的每个重复项创建单独的子作用域。

由于原型(prototype)继承,对象将作为原始对象的引用传递到子范围,而基元(字符串、 bool 值等)则不会。因此范围树中没有基元的数据绑定(bind)

HTML

<div ng-repeat="item in likedLabels">
    <input ng-model="item.label">
</div>

JS

 $scope.likedLabels = []
  $scope.addInput = function() {
    $scope.likedLabels.push({label: ''});
  }

DEMO

关于javascript - AngularJS 添加表示数组模型的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20295067/

相关文章:

javascript - Highstock 比较 如何将当前数据点与先前数据点进行比较

javascript - 将日期格式化为 "M d, yy"

javascript - 如何释放和垃圾收集 WebGL 上下文?

Spring 安全 REST API

javascript - ng-table 从范围中过滤串联值

ios - 更改手机方向但范围变量不刷新

javascript - 单击按钮时从 UL 获取 id

javascript - 是否可以在现有服务器上使用服务器端渲染?

angularjs - 如何在 Angular-Fullstack 生成的 Angular 1.5 组件中注入(inject)依赖项

c# - 带有导航属性的 BreezeJS 查找