请查看以下 Plunkr:http://plnkr.co/edit/hwVL3xtnD9hGJLpULDjI?p=preview
当您第一次单击复选框时,模型不会更新。 为什么会这样?
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..";
});
});
最佳答案
您返回的 json 有一个 1
值,而不是 true
或 false
。如果您将数据更改为 true
或 false
,它将识别初始值。另一种选择是将“1”转换为 bool 值,然后对其进行赋值。
编辑:
另一种选择是在您的复选框上设置 ng-true-value
和 ng-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
关于javascript - 复选框仅在第二次单击后更新模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36620508/