单选按钮"已检查"即使JS值发生更改,绑定也不会向HTML元素添加属性

时间:2016-07-21 11:36:42

标签: javascript knockout.js data-binding

这是我的代码:

<div data-bind="foreach: categories">
    <input name="category" type="radio" data-bind="attr: { 'value': id, 'id': 'category_'+id }, checked: $root.category.categoryId></input>
    <label data-bind="text: name, attr: { for: 'category_'+id }"></label>

    ...more inputs...
</div>

将新值更改为字符串(CoffeeScript代码):

@viewModel.category.categoryId.subscribe (newId) =>
    @viewModel.category.categoryId(newId.toString())

问题是。当我单击标签一次时,$root.category.categoryId值确实会发生变化。订户解雇等。但是输入元素仍然没有&#34;检查&#34;属性。只有当我第二次或第三次点击标签时,它才最终有效,输入元素获得属性。

此外,当我在输入上使用jQuery click()时,它可以正常工作,更改值并更改已检查的属性。

知道可能导致此行为的原因是什么?

0 个答案:

没有答案