Javascript observableArray如何使用选项绑定
刚开始从官方网站学习Knockoutjs,我正在粘贴练习步骤3中的代码 查看Javascript observableArray如何使用选项绑定,javascript,knockout.js,Javascript,Knockout.js,刚开始从官方网站学习Knockoutjs,我正在粘贴练习步骤3中的代码 查看 <table> <thead><tr> <th>Passenger name</th><th>Meal</th><th>Surcharge</th><th></th> </tr></thead> <tbody data-bi
<table>
<thead><tr>
<th>Passenger name</th><th>Meal</th><th>Surcharge</th><th></th>
</tr></thead>
<tbody data-bind="foreach: seats">
<tr>
<td><input data-bind="value: name" /></td>
<td><select data-bind="options: $root.availableMeals, value: meal, optionsText: 'mealName'"></select></td>
<td data-bind="text: meal().price"></td>
</tr>
</tbody>
</table>
<button data-bind="click: addSeat">Reserve another seat</button>
我想知道ko.observearray
如何与options
绑定一起工作,当下拉列表值更改时,价格行如何更新
是因为seats数组是可观察数组
,所以price属性在UI
中保持同步吗
我甚至试着在chrome中调试,但当下拉值改变时,并没有函数get被点击
任何帮助都会很好。在您的代码中,价格会得到更新,因为
SeatReservation.mean
是可观察的,因为它在html模板中绑定到值
因此,当您使用fine().price
时,您正在访问可观察的膳食中的对象,并访问price属性
这和写作一样:
<td data-bind="text:price"></td>
function SeatReservation(name, initialMeal){
this.price = ko.pureComputed(function(){
return this.meal().price;
});
}
函数SeatServation(名称,初始值){
this.price=ko.pureComputed(函数(){
把这顿饭还给我,价格是多少;
});
}
在您的代码中,价格会得到更新,因为SeatReservation.mean
是可观察的,因为它绑定到html模板中的值
因此,当您使用fine().price
时,您正在访问可观察的膳食中的对象,并访问price属性
这和写作一样:
<td data-bind="text:price"></td>
function SeatReservation(name, initialMeal){
this.price = ko.pureComputed(function(){
return this.meal().price;
});
}
函数SeatServation(名称,初始值){
this.price=ko.pureComputed(函数(){
把这顿饭还给我,价格是多少;
});
}
您是在谈论select标记属性值:MEIN
?好的,但可观测值应该声明为MEIN()
对吗?那么为什么要使用value:fine
?您只使用fine()
,当您想要访问可观察对象内部的对象时,它就像一个get
函数<代码>值:之所以使用MEIN
,是因为您传递的是可观察的
本身,而不是其中的对象。因此,当用户选择其他选项时,选项
绑定会更改可观察到的膳食的值。+1,与Jquery
类似,在Knockout
中,为什么我无法调试并查看下拉列表更改时哪个函数会被命中?由于选项
绑定会自动更改可观察到的膳食
项,您可以通过订阅this.mean
来调试它this.mean.subscribe(function(mean){console.log(mean.price);})
您是在谈论select标记属性value:mean
?好的,但是可观察的应该声明为mean()
对吗?那么为什么要使用value:fine
?您只使用fine()
,当您想要访问可观察对象内部的对象时,它就像一个get
函数<代码>值:之所以使用MEIN
,是因为您传递的是可观察的
本身,而不是其中的对象。因此,当用户选择其他选项时,选项
绑定会更改可观察到的膳食的值。+1,与Jquery
类似,在Knockout
中,为什么我无法调试并查看下拉列表更改时哪个函数会被命中?由于选项
绑定会自动更改可观察到的膳食
项,您可以通过订阅this.mean
来调试它this.dine.subscribe(函数(餐){console.log(餐.价);})