用于比较淘汰观察者的习语

Chi*_*hin 4 knockout.js

我有以下问题.我想检查表中单击的项目是否与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
    }
Run Code Online (Sandbox Code Playgroud)

因为该项是一个observable是永远不为null; 我如何检查是否尚未设置可观察量?

任何帮助非常感谢.

Art*_*tem 6

在比较之前展开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)
Run Code Online (Sandbox Code Playgroud)

产量

未定义

真正