我想创建一个循环,可以在输入中的第一个空值处自动启动,然后连续补充它们。但是,我不知道如何使用ng-model在angularjs中做到这一点。 好吧,我有一个html文件
<input type="text" id="pin" ng-model="inputData.pin" />
<input type="text" id="pin2" ng-model="inputData.pin2" />
我会控制而不是写
$scope.inputData = { pin : '' };
$scope.inputData = { pin2 : '' };
用于自动循环
for (var key in receivedData) {
for (var detailKey in receivedData[key]) {
$scope.inputData = { detailKey : '' };
}
}
当detailKey在顺序引脚pin2中时。
目前,这不起作用。有谁知道怎么做?在此先感谢您的帮助:)
答案 0 :(得分:1)
看起来你误解了如何为对象赋值 - 你必须treat it like an associative array。
在您的示例中,您将通过为其提供一个对象文字来重新定义每个迭代中的整个属性$scope.inputData
,该对象文字具有单个键detailKey
,其值为空字符串(''
)。
您想要做的是在对象上定义 new 属性,而不是&#39;覆盖&#39;对象本身:
for (var key in receivedData) {
for (var detailKey in receivedData[key]) {
$scope.inputData[detailKey] = '';
}
}
然后,您可以使用ng-repeat
指令在Angular模板中迭代此对象中表示的键,从inputData
获取每个键并将其值绑定到<input>
元素。这会在n
。
<input>
(n === Object.keys(inputData).length)
个元素
<input type="text" class="pin"
ng-repeat="key in inputData"
ng-model="inputData[key]" />
注意:您不能拥有在同一文档中多次使用的ID。我已将每个<input>
元素更改为类&#39; pin&#39;代替。
答案 1 :(得分:0)
你能不能只做$scope.inputData = receivedData;
?
目前您正在做的是每次循环迭代时将inputData重新分配给具有detailKey静态键的对象。