否定AngularJS中双向绑定的布尔值

时间:2016-12-19 06:49:14

标签: angularjs

我坚持使用否定布尔值,

参考以下代码

<label>Click me to toggle: <input type="checkbox" ng-model="!checked"></label><br/>

<button ng-model="button" ng-disabled="!checked">Button</button>

如果我使用上面的[ngModel:nonassign]错误抛出

如何为ng-model值绑定negote布尔表达式?

提前致谢

2 个答案:

答案 0 :(得分:0)

使用AngularJS 1.3+,您可以使用ng-true-valueng-false-value。这将扭转价值。

var app = angular
  .module('app', [])
  .controller('ctrl', function($scope) {
    $scope.checked = true;
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
  <label>
    Click me to toggle:
    <input type="checkbox" ng-model="checked" ng-true-value="false" ng-false-value="true">
  </label>
  <button ng-model="button" ng-disabled="!checked">Button</button>
</div>

答案 1 :(得分:-1)

尝试使用ng-disabled标记而非启用。您无法设置ng-model="!checked",因为模型变量必须是变量,不能包含表达式。您可以调整ng-disabled标记内的条件。请检查代码段。

&#13;
&#13;
<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.bootcss.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>

<body>

    <div ng-app="myApp" ng-controller="myCtrl">
        <label>Click me to toggle:
            <input type="checkbox" ng-model="checked">
        </label>
        <br/>

        <button ng-model="button" ng-disabled="checked">Button</button>
    </div>

    <script>
        var app = angular.module('myApp', []);
        app.controller('myCtrl', function ($scope) {

        });
    </script>

</body>

</html>
&#13;
&#13;
&#13;

您可以找到ng-disabled here和示例here

的文档