如何在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,则如果单击相应的复选框,则属性typeOnetypeTwotypeThree将出现在父作用域上,并且属性的值为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

回到顶部