0

目标

在 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' 元素)。

我能做些什么?

是的,我可以想象这个问题与脚本调用序列有关,但我看不到解决这个问题的方法。有人可以给我一个想法——至少是开始?

4

2 回答 2

1

你检查过数据(product.slug)吗?

于 2013-08-08T20:11:26.747 回答
-2

尝试从您的 href 中删除刻度,如

data-bind="attr: { href: slug }, text: name"

于 2013-08-09T14:38:47.820 回答