带有 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