我已经查看了很多以前的答案,并尝试了几种方法,但是我所做的任何事情都不允许我在第二次尝试应用绑定(bind)时更新我的 DOM。
看看下面演示问题的 fiddle 。
虽然我通过 $.getJSON() IRL 提取数据,但 fiddle 仍然重现了我摆弄的内联 JSON 和那里的代码的问题。
我尝试过的东西被注释掉了(will/hasMutated、replace、removeAll)。
我希望完成的是,我的人物 X(亚瑟小子)的五个新闻元素将被更新/替换为人物 Y(罗韩)的五个新闻,但如果我什至可以将元素 5-9 附加到 0-4 并看到 10 个 li 标签。
要重现该问题,请运行 fiddle,然后单击“再做一次”链接以模拟 JSON 加载并注意它不会显示新的数据元素,它只会生成一个没有子项的空白 ul 标记。
最佳答案
您不应该将同一个对象绑定(bind)到多个模型。相反,只需使用新信息更新模型,更改就会反射(reflect)在 View 中。
我已经更改了代码来做到这一点:http://jsfiddle.net/rARfx/5/
关于javascript - knockout.js 和 observableArray 在第二次点击时不更新 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12591164/