javascript - ng-model 没有获得默认值复选框

标签 javascript angularjs angularjs-directive

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" 才能使它们起作用。建议您使用 ngModelngChecked,但不要同时使用。

关于javascript - ng-model 没有获得默认值复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16422130/

相关文章:

javascript - 如何使用 $sce 插入带有 angular.js 的 iframe?

AngularJS Controller 和 "use strict"

javascript - 如何在 5 秒后触发输入提示?

javascript - 通过 AngularJS 在表单提交上设置 Bootstrap 错误类?

javascript - 带有常量路径变量的reactjs动态导入

javascript - 将内联 JS 放入外部 JS 并获得相同结果时遇到问题

jquery - 在 Angular 中手动编译指令时出现内存泄漏

angularjs - 如何从内部指令仅监听 $document 一次

javascript - 除非按下按键,否则如何阻止函数返回

javascript - "Cannot read property ' className ' of null "- 滚动经过标题后