如何使用带有复选框值的 ng-model?

How to use ng-model with checkbox value?

我想要这个:

日期时间和对象的摘要行应同时为 checked/unchecked,也应分别为 checked/unchecked。我的显示像照片:

我使用 ng-model。我的复选框代码如下:

 <div class='ui-widget-header ui-corner-all pw-chart-header' style="padding-left:12px ">
                                            <input type="checkbox" value="3" style="vertical-align: middle; margin: 0" id="selectsummarizationType" ng-model="summarizationtypeBoth" btn-checkbox btn-checkbox-true="true" btn-checkbox-false="false" class="ng-pristine ng-untouched ng-valid"> Summary Row
                                        </div>


      <div style="padding-top:10px ; padding-bottom:10px; padding-left:10px ; padding-right:10px">
                                                   <label for="uxDatetime">
                                                     <input type="checkbox" value="1" style="vertical-align: middle; margin: 0" id="uxDatetime" name="uxDatetime" ng-model="summarizationtypeDate" btn-checkbox btn-checkbox-true="true" btn-checkbox-false="false" class="ng-pristine ng-untouched ng-valid"> Datetime
                                                   </label>
                                                   <label for="uxObject" style="float: right">
                                                     <input type="checkbox" value="2" style="vertical-align: middle; margin: 0" id="uxObject"  name="uxObject" ng-model="summarizationtypeObject" btn-checkbox btn-checkbox-true="true" btn-checkbox-false="false" class="ng-pristine ng-untouched ng-valid"> Object
                                                   </label>
                                                </div>

这是 ng-model (js) 代码:

$scope.$watch('summarizationtypeBoth', function () {

                });
                $scope.$watch('summarizationtypeDate', function () {

                });
                $scope.$watch('summarizationtypeObject', function () {

                });

如何使用 ng-model 怎么写? 请。

我们使用 ng-change 属性 :

<input type="checkbox" value="3" style="vertical-align: middle; margin: 0" id="selectsummarizationType" ng-model="summarizationtypeBoth" btn-checkbox btn-checkbox-true="true" btn-checkbox-false="false" class="ng-pristine ng-untouched ng-valid" ng-change="summaryChecked()"> Summary Row

并在您的控制器中

$scope.summaryChecked = function() { 
   $scope.summarizationtypeDate = $scope.summarizationtypeBoth
   $scope.summarizationtypeObject= $scope.summarizationtypeBoth
}

看到这个笨蛋https://plnkr.co/edit/ztL4nC6JYDv1lpnuMr4s?p=preview

尽量避免 $scope.$watch,因为它可能会减慢您的 Web 应用程序。

您应该使用具有 3 个值的对象并使用 getter 和 setter 来确保您的条件。这里有一个例子:Conditional ng-model binding in angularjs

使用 ng-model-options,您可以强制调用您的设置器:https://docs.angularjs.org/api/ng/directive/ngModelOptions