复选框仅在第二次单击后更新模型

时间:2016-04-14 10:34:10

标签: javascript angularjs checkbox

请查看以下Plunkr:Mozilla

第一次模型未更新时单击复选框。 为什么会这样?

var app = angular.module('main', ['ngMaterial'])
    .controller('DemoCtrl', function($scope, $filter, $http) {
      $scope.propdata = [];
      $scope.success ="loading..";
      var url = "api.json";
       $http({url:url,
         method:"GET"
       }).then(function (rs){
         $scope.propdata = rs.data[0];
         $scope.success ="done..";
       });
    });

1 个答案:

答案 0 :(得分:2)

你回来的json有一个1值,而不是truefalse。如果您将数据更改为truefalse,则会识别初始值。另一种选择是将“1”转换为布尔值,然后分配它。

编辑:

另一个选项是在复选框上设置ng-true-valueng-false-value,以便识别您正在使用的0和1值。注意双重“1”之后的简单引号来识别字符串。示例:

<强> HTML

<div class="checkbox {{font_size}}">
     <label for="garden_service">
          <input type="checkbox" id="garden_service"
                      ng-checked="propdata.garden_service==1" ng-true-value="'1'" ng-false-value="'0'"
                       ng-model="propdata.garden_service">Garden Service <br/>model value:{{propdata.garden_service}}
     </label>
</div>

http://plnkr.co/edit/t280UjC3NYNtQt28W1wm?p=preview

官方文档链接:https://docs.angularjs.org/api/ng/input/input%5Bcheckbox%5D