在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
的元素)。
我该怎么办?
是的,我可以想象这个问题与脚本调用顺序有关,但是我看不到解决这个问题的方法。有人可以给我一个想法 - 至少从一开始?
答案 0 :(得分:1)
您检查了数据(product.slug)吗?
答案 1 :(得分:-2)
尝试从
中删除href中的刻度data-bind =“attr:{href:slug},text:name”