我想解释一下我的问题。
我有一个使用ng-repeat显示的复选框列表,如果我选中了一个特定的复选框,则必须禁用其他复选框。
<label ng-repeat="specific in specifications">
<input id="specifications_chk" value="{{specific}}" ng-model="newObject[specific]" type="checkbox">
{{specific}}
</label>
复选框值来自json文件。
如果我检查IndepthHomeCleaning,
我需要禁用其他人。多数民众赞成
答案 0 :(得分:0)
有很多方法可以做到这一点,有些方法比其他方法更好但是使用你提供的方法可能有所帮助:
<label ng-repeat="specific in specifications">
<input id="specifications_chk" value="{{specific}}" ng-model="newObject[specific]" type="checkbox" ng-disable="newObject.IndepthHomeCleaning">
{{specific}}
</label>
当然这不是动态的。但是,如果您需要它始终是第一个规范,则可以在ng-disabled
中使用此表达式:
ng-disable="newObject[specifications[0]]"
这是一个JS Fiddle示例,如果选中第一个复选框,则禁用除第一个复选框以外的所有复选框:
https://jsfiddle.net/mLj5Lpwz/
我希望这会有所帮助。
<强>更新强>
根据您的评论,听起来这需要更具活力。您需要在对象中的某处捕获此数据。
我创建了另一个将$scope.specifications
作为对象数组的示例。这些对象包含一个ExcludedBy
属性,其他规范将导致该规范被禁用。
很难解释,但我希望这个更新的例子可以帮助您实现所需:
答案 1 :(得分:0)
Here is the solution to your problem