我正在使用淘汰赛,我想比较一个值是否不可用。在JavaScript /淘汰赛中有没有办法可以做到这一点?
<!-- ko if: User().details()[0] != undefined -->
<p>Your defined</p>
<!--/ko-->
我尝试了undefined
,但这不起作用。有人知道我能比较什么,所以检查价值是否不可用?
答案 0 :(得分:1)
您需要将typeof
值与'undefined'
进行比较。例如:
<!-- ko if: typeof User().details()[0] !== 'undefined' -->
<p>Your defined</p>
<!--/ko-->
请参阅MDN documentation for this type of check。
这个片段说明了这一点:
var x = {
y: 50
};
document.getElementById('output').innerHTML = 'x.y is undefined: ' + (typeof x.y === 'undefined') + '; x.z is undefined: ' + (typeof x.z === 'undefined');
&#13;
<div id="output"></div>
&#13;
答案 1 :(得分:0)
而不是检查天气是不确定的,如果你处于两难境地,请始终使用with
(在你的场景中没有容器),这样可以达到目的。
查看:
<!-- ko with:$data.User1 -->
<p data-bind="text:$data"> defined</p>
<!--/ko-->
<!-- ko if:$data.User -->
<p>Your defined</p>
<!--/ko-->
查看型号:
var viewModel = {
User: ko.observable('charlie')
};
ko.applyBindings(viewModel);
在视图中你可以看到我故意使用with:user1
仍然你的代码不会破坏它只是停止向下看。如果您为if
尝试相同的操作,则会出现未定义的错误。
如果你真的想继续使用if
,那么尝试使用一个计算机并根据你施加的条件返回true / false。使视图更清洁
正在使用 sample fiddle