迭代 ng 模型?可能吗?

Iterating ng-model? Is it possible?

我想做一个循环,它可以在输入中的第一个空值处自动启动,然后连续补充它们。但是,我不知道如何使用 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 在 sequence pin 时,pin2。

目前,这不起作用。有谁知道该怎么做?预先感谢您的帮助:)

你能不能只做 $scope.inputData = receivedData;

目前您正在做的是在每次循环迭代时将 inputData 重新分配给一个静态键为 detailKey 的对象。

您似乎误解了如何为对象赋值 -- 您必须 treat it like an associative array.

在您的示例中,您将在每次迭代中重新定义整个 属性 $scope.inputData,方法是为其提供一个具有单个键 detailKey 的对象文字,其值为空字符串('').

您要做的是在对象上定义一个 new 属性,而不是 'overwrite' 对象本身:

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> 元素改为 class 'pin'。