-1

我将数据列表绑定到 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>

完整代码在这里。 http://jsfiddle.net/wuttipat/sc8fX/12/

4

3 回答 3

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/

于 2013-05-29T12:25:15.443 回答
0

我发现了在淘汰文件上发布的问题。 http://knockoutjs.com/documentation/with-binding.html

于 2013-05-29T13:42:12.730 回答
0

我想我已经弄清楚了(在清理小提琴之后)。你绑定的是

text: d.message

但应该是

text: message

因为d是您绑定的上下文。因此,您实际上是在尝试绑定到d.d.message不存在的对象。替换它text: message似乎有效,不是吗?

看到这个更新的小提琴

于 2013-05-29T11:52:33.200 回答