目标
在 AJAX 调用之后调用 KnockoutJS 的attr
绑定。
问题
看看下面的片段:
$.ajax({
url: "/Products/List?Output=JSON",
dataType: "json",
success: function (data) {
$.each(data, function (key, product) {
var item = {
"id": product.id,
"name": product.name,
"slug": product.slug,
"unitsQuantity":
product.quantity + " " +
(product.quantity > 1 ?
product.measure + "s" :
product.measure),
"isAdded": true
};
viewmodel = ko.viewmodel.fromModel(item);
self.items.push(viewmodel);
});
}
});
如您所见,这是一个简单的 AJAX 调用,它将信息从 JSON 推送到完美运行的 Knockout 数组。
同时,在 HTML...
<div class="product-summary-description">
<a data-bind="attr: { 'href': slug }, text: name"></a>
</div>
你能看到data-bind="[...]"
属性吗?如果是这样,这就是问题所在。当我加载页面时,href
它的 ' 属性不会呈现在元素上(在我的情况下是a
' 元素)。
我能做些什么?
是的,我可以想象这个问题与脚本调用序列有关,但我看不到解决这个问题的方法。有人可以给我一个想法——至少是开始?