如何访问存储在淘汰赛中的obervable中的json值

时间:2017-08-24 14:07:21

标签: javascript html json knockout.js observable

我有一个淘汰可观察的“orderDetails”,我正在接收来自休息呼叫的json响应,然后我将其存储在orderdetails中。但我无法访问json键的值。以下是示例代码:

self.orderDetails = ko.obervable();
休息后

self.orderDetails({name:"john", b:13, c:14});

现在在html中(“orders”是viewmodel):

<span data-bind="text:$parent.orders.orderdetails.a"></span>

这是将值赋予空。如何从orderDetails访问名称值。

1 个答案:

答案 0 :(得分:1)

我认为您可能正在寻找“With Binding”

with绑定创建一个新的绑定上下文,以便后代元素绑定在指定对象的上下文中。

这是将绑定上下文切换到子对象的一个​​非常基本的示例。请注意,在data-bind属性中,没有必要使用orderdetails为a或b添加前缀。,因为绑定上下文切换为orderdetails。

<p data-bind="with: $parent.orders.orderdetails">
    a: <span data-bind="text: b"> </span>,
    b: <span data-bind="text: c"> </span>
</p>

您需要使用ko.applyBindings初始化使用子对象可观察的orderdetails。这是一个例子。

 ko.applyBindings({
    orderdetails: {
        name: "adam",
        b: 13,
        c: 14
    }
});

以下链接提供了更多相关信息:The "with" binding(以上示例直接来自此处)

正如评论所提到的那样,您需要先了解所有教程。他们非常有帮助,信息量很大。 KO tutorial