带有 ng-model 的复选框,反映是否显示另一个元素
Checkbox with ng-model that reflect if another element is showed
我有一个元素复选框,我想在另一个元素未显示时重置 ng-model 的值,例如:如果另一个元素未显示在我的视图中,则设置为 false。 ng-show 只隐藏我的复选框,但不反映在控制器的对象中。
<select ng-model="item.myOption" convert-to-boolean>
<option value="false" selected>Option false</option>
<option value="true">Option true</option>
</select>
<input type="checkbox" ng-model="item.myChecked" ng-show="item.myOption">
您可以在 select 字段的 ng-change 上编写小函数,您可以在其中将复选框的模型值设置为 true 或 false 或 null。
app.controller('myCtrl', function($scope) {
$scope.item = {myOption: "true"}
$scope.myCheckbox = true;
$scope.changed = function() {
if($scope.item.myOption == "false") {
$scope.myCheckbox = false;
} else {
$scope.myCheckbox = true;
}
}
});
http://plnkr.co/edit/ekNxZImNIBisBCrfZsFS?p=preview
同样,您可以更改任何相关字段的值(例如使用日期选择器在用户 select 的 DOB 之后立即查找年龄字段值等)。您可以将 switchcase 用于大量值而不是 if else inside change function
我有一个元素复选框,我想在另一个元素未显示时重置 ng-model 的值,例如:如果另一个元素未显示在我的视图中,则设置为 false。 ng-show 只隐藏我的复选框,但不反映在控制器的对象中。
<select ng-model="item.myOption" convert-to-boolean>
<option value="false" selected>Option false</option>
<option value="true">Option true</option>
</select>
<input type="checkbox" ng-model="item.myChecked" ng-show="item.myOption">
您可以在 select 字段的 ng-change 上编写小函数,您可以在其中将复选框的模型值设置为 true 或 false 或 null。
app.controller('myCtrl', function($scope) {
$scope.item = {myOption: "true"}
$scope.myCheckbox = true;
$scope.changed = function() {
if($scope.item.myOption == "false") {
$scope.myCheckbox = false;
} else {
$scope.myCheckbox = true;
}
}
});
http://plnkr.co/edit/ekNxZImNIBisBCrfZsFS?p=preview
同样,您可以更改任何相关字段的值(例如使用日期选择器在用户 select 的 DOB 之后立即查找年龄字段值等)。您可以将 switchcase 用于大量值而不是 if else inside change function