使用以下html,如何将select值设置为observable,以便我可以订阅前后更改。 JustCityGateBasisId(当前设置为值:)是foreach(justCityGatesListPush)中的值。我想使用该值,因此使用正确的值初始化每个创建的选择。这有效。虽然我已将JustCityGateBasisId设置为可观察对象,但我相信Knockout不会触发对该值的任何订阅,因此我无法获得之前和之后的值。我添加了一个事件,但这只会提供之前的值或之后的值而不是两者。如果我使用observable作为值(不是foreach中存在的值),我不能在创建选择时使用foreach值初始化值。
我想要做的是将值设置为observable,然后在foreach执行时能够使用JustCityGateBasisId值更新observable。 span值在绑定时获取正确的值。我希望能够在事件发生时获得两个值,但看起来它是不可能的。
<table>
<tr data-bind="foreach: justCityGatesListPush">
<td class="citygatebasisList">
<select id="cityGate" data-bind="options: CityGates,
optionsText: 'Name',
optionsValue: 'Id',
value: JustCityGateBasisId,
event: { change: selectionLastChanged }"></select>
</td>
<td class="CityGate">
<span data-bind="text: JustCityGateBasisId" />
</td>
</tr>
</table>
答案 0 :(得分:0)
this.myObservable = ko.observable();
this.myObservable.subscribe(function(previousValue){
console.log('oldvalue: ' + previousValue);
}, this, "beforeChange");
this.myObservable.subscribe(function(newValue){
console.log('newValue: ' + newValue)
});