我有以下问题。
我想检查表中单击的项目是否与 model.selected 不同。
var model= {
items: ko.observableArray(),
selected : ko.observable()
};
<tbody>
<!-- ko foreach: model.items -->
<tr data-bind="click:$parent.model.set_selected_item">
<td style="cursor:pointer" data-bind="varchar : title"></td>
</tr>
<!-- /ko -->
</tbody>
//ID is an observable
//selected may not be set yet - i.e an empty observable;
var set_selected_item = function(item){
//if item is different set
model.LandItem_selected(item);
do_routine(item)
//else
//do nothing
}
因为该项目是可观察的,所以它永远不会为空;
我将如何检查 observable 是否尚未设置?
非常感谢任何帮助。
最佳答案
在比较之前解开 observable
var item1 = ko.observable()
console.log(ko.utils.unwrapObservable(item1))
console.log(ko.utils.unwrapObservable(item1) == null)
item1(1)
console.log(ko.utils.unwrapObservable(item1) == null)
输出
不明确的
真的
错误的
关于knockout.js - 比较 knockout 观察值的习惯用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9840641/