我将数据列表绑定到HTML,在每个列表中都有按钮,用于通过ajax获取详细信息。我想将回调数据绑定到模型的成员,在ajax回调之后,对象有数据,查看接收到的(ko.toJSON(d,null,2))对象。但HTML不会更新数据。 我不知道出了什么问题。请帮忙。谢谢。
HTML:
<section id="lists">
<article class="todoList">
<script type="text/html" id="person-template">
<!-- <p>Credits: <span data-bind="text: message"></span></p>-->
<p>xxx</p>
</script>
<ul data-bind="foreach: Items">
<li>
<div>
<span class="contentarea" data-bind="text: message"></span>
<button data-bind="click: $parent.evClick.bind($data)">Get details</button>
<button data-bind="click: detail">Ajax-Get</button>
<p>Credits: <span data-bind="text: d.message"></span></p>
<div style="display: block; width: 200px; height: 200px; border: solid 1px #ff6a00;" data-bind="text: ko.toJSON(d, null, 2)"></div>
</div>
</li>
</ul>
</article>
</section>
答案 0 :(得分:1)
你应该使用
<div data-bind="with: d">
<span data-bind="text: message"></span>
因为data-bind =“with:d”在你使用data-bind =“text:message”时创建绑定上下文的范围,所以在这种情况下它将引用父绑定上下文意味着d。
此处的完整代码:http://jsfiddle.net/sc8fX/74/
答案 1 :(得分:0)
我想我已经弄清楚了(在清理了小提琴之后)。你有约束力是
text: d.message
但它应该是
text: message
因为d
是绑定的上下文。所以你实际上试图绑定到不存在的d.d.message
。用text: message
替换它似乎有效,不是吗?
答案 2 :(得分:0)
我在淘汰赛文件中发现了这个问题。 http://knockoutjs.com/documentation/with-binding.html