如何在(key,value)ng-repeat中添加动态属性

时间:2017-05-10 07:04:07

标签: angularjs angularjs-ng-repeat

我正在使用键值对ng-repeat迭代对象列表。我想在复选框中添加动态ng模型。 我搜索了很多,但我没有找到任何解决方案。我虽然发现了类似的问题 - define dynamic ng-model inside key value pair ng-repeat但似乎没有答案。

<div id="details_{{key}}" ng-repeat="(key,value) in value" >
<input type="checkbox" ng-model="" ng-change="single_chk()">
</div>

如何为上述ng-repeat添加ng-model的动态属性,我必须在ng-change中传递该值?

1 个答案:

答案 0 :(得分:1)

您可以使用密钥或$ index快速创建模型&#39;但请将其作为对象符号,以便在控制器中轻松访问。你的ng-repeat应该有一个名称不是&#39;值&#39;顺便说一句,因为它可能导致(键,值)问题,如下所示。我还建议您习惯使用vm:

<div id="details_{{key}}" ng-repeat="(key, value) in vm.objArray">
  <input type="checkbox" ng-model="vm.model.{{key}}" ng-change="vm.single_chk(key)">
</div>

然后在你的控制器中,访问this.model将为你提供一个包含所有模型的对象,无论密钥是什么。您的更改已传递到您在模型本身上使用的密钥,因此非常容易访问:

single_chk(key) {
  // this.model[key] holds the model for the key passed in
}