【问题标题】:knock template binding after ajax requestajax请求后敲模板绑定
【发布时间】:2018-01-07 22:39:47
【问题描述】:

我完成了使用 foreach 将数据绑定到模板的淘汰教程,我得到了它的工作。我可以对控制器进行成功的 ajax 调用,并且我看到数据与硬编码数据相同。但我在屏幕上什么都没有。 javascript 控制台中没有错误。

我的假设是我需要稍微改变一下语法。我已经用谷歌搜索了几个小时,但找不到一个很好的例子。有没有人有一个使用 ajax 调用来填充剔除模板的好例子?

这是我的js代码:

function RecordViewModel(url) {
    var self = this;
    self.cards = ko.observableArray();
    self.loadData = function () {
        $.get(url.load, function (data) {
            self.cards = data;
        });
    }
}

var vm = new RecordViewModel({
    load: '/records/getcards'
});

$(function () {
    vm.loadData();    
    ko.applyBindings(vm);
});

html:

   <script type="text/html" id="record-template">
        <table>
            <tr>
                <td><span data-bind="text:artist" /></td>
            </tr>
            <tr>
                <td><span data-bind="text:description" /></td>
            </tr>
            <tr>
                <td rowspan="3"><span data-bind="text:price"></span></td>
            </tr>
        </table>
    </script>


<div data-bind="template: {name: 'record-template', foreach: cards() }"></div>

【问题讨论】:

    标签: jquery ajax templates knockout.js


    【解决方案1】:

    据我所知,您更愿意像这样设置 observable 的值:

    self.cards(data) 
    

    而不是

    self.cards = data;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-27
      • 2013-10-02
      • 2017-03-18
      相关资源
      最近更新 更多