Knockout.js 如何从计算绑定访问父级
我在视图模型中有一个可观察的可变“速率”和可观察的阵列“座位”。数组的元素“priceOtherCurrency”中有一个计算变量,它的主体中需要父级的“rate”。如何访问父变量或向计算函数传递参数 以下是一个例子: 在本例中,我在SeatServation对象中添加了一个“rate”:Knockout.js 如何从计算绑定访问父级,knockout.js,Knockout.js,我在视图模型中有一个可观察的可变“速率”和可观察的阵列“座位”。数组的元素“priceOtherCurrency”中有一个计算变量,它的主体中需要父级的“rate”。如何访问父变量或向计算函数传递参数 以下是一个例子: 在本例中,我在SeatServation对象中添加了一个“rate”: function SeatReservation(name, initialMeal, rate) { var self = this; self.name = name; self
function SeatReservation(name, initialMeal, rate) {
var self = this;
self.name = name;
self.meal = ko.observable(initialMeal);
self.rate = rate;
self.priceOtherCurrency = ko.computed(function() {
return self.meal().price * self.rate();
}, this);
}
但它是重复的。如果没有SeatServation、hidden field等中的“rate”,我如何执行相同的操作?您可以访问父绑定上下文,并在视图中执行此操作:
<td data-bind="text: $parent.rate() * priceOtherCurrency()"></td>
更新小提琴:
然而,这将业务逻辑置于视图中,这不是一件好事。viewmodel层次结构应模拟数据结构的概念层次结构。如果当前的viewmodels是适合您的数据结构的正确设计,我会说让它们保持原样,即使您必须在构造函数中传递rate参数。我已经找到了答案。
self.priceOtherCurrency = ko.computed(function() {
return self.meal().price;
}, this);