【发布时间】:2017-05-26 18:25:57
【问题描述】:
我在将 Knockout 数组与 Material Design Lite 复选框绑定时遇到问题。基本上它不会显示选中的复选框。
如何解决?
var ViewModel = function() {
this.uniqueTabsNames = ko.observableArray(['one', 'two', 'three']);
}
ko.applyBindings(new ViewModel());
<link href="https://fonts.googleapis.com/css?family=Roboto:regular,bold,italic,thin,light,bolditalic,black,medium&lang=en" rel="stylesheet" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/material-design-lite/1.3.0/material.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/material-design-lite/1.3.0/material.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">
<main class="mdl-layout__content">
<div class="page-content">
<p><b>generated via KO, it doesn't work</b></p>
<!-- ko foreach: uniqueTabsNames -->
<div class="nav-checkbox-item">
<label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" data-bind="attr: {'for': $data}">
<input data-bind="attr: {'id': $data}" type="checkbox" class="mdl-checkbox__input"/>
<span class="mdl-checkbox__label" data-bind="text: $data"></span>
</label>
</div>
<!-- /ko -->
<p><b>non KO checkbox</b></p>
<div class="nav-checkbox-item">
<label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for='testbox'>
<input id='testbox' type="checkbox" class="mdl-checkbox__input" />
<span class="mdl-checkbox__label">test box</span>
</label>
</div>
</div>
</main>
</div>
【问题讨论】:
-
它不会解决你的问题,但我确实看到一个错字:
-
通常对于复选框,您还希望在输入元素上使用绑定“已选中”。
-
@Paul0515,感谢修复。
标签: knockout.js material-design material-design-lite