http://jsfiddle.net/ADukg/2644/
为什么我的每个过滤器中的默认值“已选中”在页面加载时未在复选框中设置?
我正在使用 batarang 对其进行调试,当我单击复选框时看起来模型正在更新,但“checked”的默认值为 true 看起来并没有得到应用。
如果我使用 ng-checked="filter.checked"它似乎确实有效,但我不确定为什么。
JavaScript:
$scope.filtersList = [
{"name":"type","checked":"true","label":"Source(s)","CSSClasses":"",
"values":[
{"key":"Online News","value":1,"parent":"false","children":[],"checked":"true"},
{"key":"Twitter","value":15,"parent":"false","children":[],"checked":"true"}]
},
HTML:
<div class="filter-listing" ng-controller="sidebar">
<ul class="filterSection" ng-repeat="filter in filtersList">
<li class="clearfix">
<span class="pull-left">
<a class="pull-left twistdown filterToggle"
href="#" title="Expand" data-toggle="collapse"
style="margin-top: 6px">
<i class="icon-white icon-plus-sign"></i>
</a>
<input type="checkbox" ng-model="filter.checked" id="filter.name" class="parentCheckbox allFilterCheckbox"/>
<label
style="display: inline;" for="filter.name">
{{filter.label}}
</label>
最佳答案
因为 filter.checked
设置为字符串 ("true"
) 而不是 bool 值。
要使 ngModel
使用复选框,您需要使用 bool 值。这就是为什么您必须在 fiddle 的子项中说 ng-checked="filter.checked"
才能使它们起作用。建议您使用 ngModel
或 ngChecked
,但不要同时使用。
关于javascript - ng-model 没有获得默认值复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16422130/