在ng模型中动态创建属性

creating property dynamically in ng-model

本文关键字:创建 属性 动态 ng 模型      更新时间:2023-09-26
  <div class="form-group" data-ng-repeat="choice in choices">
    <input type="text" ng-model="user.subjectname[$index]" 
   name="subject" ng-required="true" placeholder="Enter a subject name">
   </div> 

由于我使用ng repeat动态创建这个输入字段,如果我使用ng-model=user.subjectname,由于某种原因,所有字段中的输入文本都是相同的,我在互联网上搜索,发现ng-model="user.subjectname[$index]"正在使用,并且有效。

然而,我无法理解

  1. 它到底意味着什么

2.如果是数组或对象?

  1. 它在控制台中显示为对象?

  2. 如果它是对象,为什么它有索引?

此外,由于我们可以使用以下格式迭代对象val:

ng-repeat="(key,val) in user.subjectname"{{val}}

为什么它不起作用?

neither did ng-repeat="subject in user.subjectname"{{subject}}

我能问路吗,因为我现在对此很困惑。

它是一个数组。当你这样做:

var test = []; console.info(typeof test);// You would get object as arraysa re also object in Javascript.

在这里,您将选项中的$index of choice传递到subjectname数组。这很好。在用一些数据填充subjectname之后,您可以像一样使用ng repeat

ng-repeat = "subject in user.subjectname"

同时初始化user.subjectname=[];在控制器中

<form class="idea item">
<div ng-repeat="(key, value) in items[0]" >
    <label>{{key}}</label>
    <input type="range" ng-model="items[0][key]" min="0" max="15"/>
</div>
<input type="submit" ng-click="save()" />
<pre>{{items | json}}</pre>

var app=角度模块('my-app',[],函数(({})

app.controller('AppController', function ($scope) {
    $scope.items = [{"red": 14, "green": 12, "orange": 1, "yellow": 11, "blue": 9}];
})