繁体   English   中英

通过AJAX调用将数据加载到Knockout组件中

[英]Load data into a Knockout component via AJAX call

我习惯于在请求时使用一些数据从ASP.NET加载部分视图和用户控件。 看完Knockout组件后,我试图弄清楚如何对文档进行类似的操作,但无法弄清楚。

谁能帮我举一个简单的例子,说明如何做一些简单的事情,例如获取一张充满数据的表,并根据所单击的行加载Knockout组件?

<tbody data-bind="foreach: unapprovedNotes">
    <tr>
        <td><a href="#" data-bind="click: fetchNote(id())">Fetch this record</a></td>
    </tr>
</tbody>

<div id="note-preview-template">
    <client-information params="???"></client-information>
</div>

ko.components.register('client-information', {
    viewModel: function(params) {
        var self = this;

        self.someProperty = params.???
    },
    template: { element: 'note-preview-template' }
});

self.fetchNote = function(id) {
    //AJAX call that would load the data into <client-information>
}

因此,单击链接将进行AJAX调用,以按需加载组件的数据。 我不需要在页面加载时加载该组件,但希望以类似的行为在应用程序的其他位置重用该组件。

甚至值得使用组件还是我应该创建一个包含所有功能的第二个视图模型?

只需使用Jquery的getJson(假设您向客户端提供json),一旦通过该方法获取数据,就将其应用于您的可观察数组...

好的做法是提取可观察对象的基础数组并将新值一一推送,然后将可观察数组标记为已突变

从服务器获取Json后,此帖子应帮助您更新可观察数组: 从JSON更新Knockout.js可观察对象

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM