如何以编程方式检查具有动态模型名称的复选框?

pap*_*ias 3 angularjs

我创建了一些带有动态模型名称的复选框,如下所示:

\n\n
<label ng-repeat="item in main.itemDetails">\n  <input type="checkbox" checklist-value="item.price"\n  ng-click="itemChanged(item)" ng-model="checkboxes[item.name]">\n   {{item.name}} - <b>{{item.price}} \xe2\x82\xac</b>\n   <br>\n</label>\n
Run Code Online (Sandbox Code Playgroud)\n\n

在我的控制器中,我想检查一些复选框,如果它们的模型名称存在于数组 $scope.selectedItems 中。

\n\n

我正在尝试做这样的事情,但它不起作用:

\n\n
for (var i = 0, j = $scope.selectedItems.length; i<j; i++) {\n            $scope[\'selectedItems[i].name\'].isChecked = true;\n        }\n
Run Code Online (Sandbox Code Playgroud)\n\n

例如,如果 item.name = \'Item1\' 我希望模型被命名为 $scope.Item1 ,稍后我想调用$scope.Item1.isChecked = true;

\n\n

我在这里做错了什么?

\n

len*_*ndc 5

您将模型存储在 中$scope.checkboxes,因此您可以将其值设置为true如下代码所示。

for (var i = 0, j = $scope.selectedItems.length; i<j; i++) {
    $scope.checkboxes[$scope.selectedItems[i].name] = true;
}
Run Code Online (Sandbox Code Playgroud)