作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在复选框列表中选中的绑定(bind)有问题。
JS
function vm() {
var self = this;
self.categories = [
{id: 1, name: "Category 1"},
{id: 2, name: "Category 2"},
{id: 3, name: "Category 3"}
];
// Assume this item came from server side,
// that's why i'm using the mapping plugin here.
var rawItem = { links: [1] };
self.item = ko.mapping.fromJS(rawItem);
}
ko.applyBindings(new vm());
HTML
<div data-bind="foreach: categories">
<div>
<label>
<span data-bind="text: name"></span>
<input class="checkbox" type="checkbox" data-bind="checked: $root.item.links, attr: {value: id}">
</label>
</div>
</div>
<div data-bind="text: ko.toJSON(item.links)"></div>
正如您在 fiddle 中看到的那样,第一个问题是 self.category
项中的“id”属性以某种方式转换为字符串,这导致比较失败。无论如何,将项目 links
转换为字符串也不能按预期工作。
简而言之,目标是:根据categories
数组中的值检查页面加载时的字段。
由于我是从更复杂的场景中重现这一点,所以我添加了映射插件以放入任何可能的因素。
最佳答案
您的 Json 对象有无效键,JSON only allows key names to be strings .这就是为什么您将 id
视为字符串的原因。
HTML
<div data-bind="foreach: categories">
<div>
<label>
<span data-bind="text: name"></span>
<input class="checkbox" type="checkbox" data-bind="value: id, checked: $root.item">
</label>
</div>
</div>
<div data-bind="text: ko.toJSON(item)"></div>
JavaScript
function vm() {
var self = this;
self.categories = [
{id: "1", name: "Category 1"},
{id: "2", name: "Category 2"},
{id: "3", name: "Category 3"}
];
// Assume this item came from server side,
var rawItem = { links: ["1"] };
self.item = ko.observableArray(rawItem.links);
}
ko.applyBindings(new vm());
这是 jsfiddle
关于javascript - KnockoutJS 未在复选框列表中选择选中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23794844/
我是一名优秀的程序员,十分优秀!