从服务器获取数据后更新knockout视图

时间:2012-08-21 13:23:45

标签: jquery knockout.js

我正在尝试使用这个演示:

http://knockoutjs.com/examples/cartEditor.html

但是,在使用的数据集中,例如:sampleProductCategories - 在示例中它是静态的。

我希望在通过jQuery getJson调用API后填充该数据集。

因此标记将存在于页面上 - 但是它还没有数据来填充视图。

当sampleProductCategories列表更改时,如何重新标记标记以重绘自身?

例如 - 这部分可以重新绘制/反弹到数据吗?

 <tbody data-bind='foreach: lines'>
    <tr>
        <td>
            <select data-bind='options: sampleProductCategories, optionsText: "TypeName", optionsCaption: "Select...", value: TypeID'></select>
        </td>
        <td data-bind="with: category">
            <select data-bind='options: products, optionsText: "name", optionsCaption: "Select...", value: $parent.product'></select>
        </td>

谢谢,

标记

1 个答案:

答案 0 :(得分:1)

您可以使用observableArray作为选项,然后通过AJAX请求填充它们。用户界面将相应更新。

以下是购物车编辑器的更新示例,该编辑器使用空observableArray并在1秒后使用静态数据在setTimeout中更新它(就像您使用AJAX调用一样)。 http://jsfiddle.net/rniemeyer/TmUDc/