我使用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>
答案 0 :(得分:3)
据我所知,您更愿意设置这样的可观察值:
self.cards(data)
而不是
self.cards = data;