我有一个淘汰可观察的“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访问名称值。
答案 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