如何在angularjs中为ng-model动态赋值?
在这里,我使用ng-repeat
例如动态生成html元素
<div ng-repeat="type in types"> <input type="checkbox" ng-model="{{type}}" />{{ type }}
</div>
我想为ng-model设置类型值。是否有可能或者我想像这样为ng-true-value设置类型值
<div ng-repeat="type in types"> <input type="checkbox" ng-model="{{type}}" ng-true-value="{{type}}" />{{ type }}
</div>
回答:
由于ng-repeat为每种类型/项目/迭代创建子范围,因此我们需要将每种类型的ng-model与父范围而不是子范围相关联。一种方法是使用$ parent:
<input type="checkbox" ng-model="$parent[type]">{{ type }}
如果像在@Alex的答案中那样定义$
scope.types,则如果单击相应的复选框,则属性typeOne
,typeTwo
和typeThree
将出现在父作用域上,并且属性的值为true
。如果再次单击选中的复选框,该属性将保留,并且该值将切换为false
。因此,您的代码将必须检查不存在的属性以及存在的值设置为true或false的属性。有点混乱。
我希望在父作用域上预定义对象数组,其中每个对象都有类型(名称)和一个布尔值,以指示是否选择了它:
$scope.types = [ {name: 'typeOne', selected: false},
{name: 'typeTwo', selected: false},
{name: 'typeThree', selected: false}];
然后,不需要$ parent(因为“ type”的值将是对父对象的引用,而不是父属性(原始)值的副本):
<input type="checkbox" ng-model="type.selected">{{ type.name }}
以上是 如何在angularjs中为ng-model动态赋值? 的全部内容, 来源链接: utcz.com/qa/428533.html