Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想比较一个值是否为;“不可用”;javascript_Javascript_Knockout.js - Fatal编程技术网

我想比较一个值是否为;“不可用”;javascript

我想比较一个值是否为;“不可用”;javascript,javascript,knockout.js,Javascript,Knockout.js,我正在使用knockout,我想比较一个值是否不可用。在JavaScript/knockout中有什么方法可以做到这一点吗 <!-- ko if: User().details()[0] != undefined --> <p>Your defined</p> <!--/ko--> 你的定义 我尝试了未定义的,但没有效果。有人知道我可以将其与什么进行比较,以便它检查值是否不可用吗?您需要将类型的值与未定义的进行比较。例如: &l

我正在使用knockout,我想比较一个值是否不可用。在JavaScript/knockout中有什么方法可以做到这一点吗

<!-- ko if: User().details()[0] != undefined -->
       <p>Your defined</p>
<!--/ko-->

你的定义


我尝试了
未定义的
,但没有效果。有人知道我可以将其与什么进行比较,以便它检查值是否不可用吗?

您需要将
类型的
值与
未定义的
进行比较。例如:

<!-- ko if: typeof User().details()[0] !== 'undefined' -->
       <p>Your defined</p>
<!--/ko-->

好吧,不要检查是否有未定义的内容,如果您处于进退两难的境地,请始终将
(在您的场景中为无容器)一起使用,这符合确切的目的

查看:

<!-- 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);
在视图中,您可以看到我故意将
与:user1一起使用
,但您的代码不会破坏它,只是停止往下看。如果您尝试对
If
执行相同的操作,则会出现未定义的错误

如果你真的想继续进行
if
,那么试着根据你施加的条件使用一个计算出的值并返回true/false。使视图更清晰


工作

您能告诉我如何将此应用于上面的代码吗?@DomAdams在这种情况下,请使用一些其他代码更新您的问题,包括您的淘汰模型。
User
details
不是函数。将其定义为计算值可能有意义。如果问题是
对象不是函数
错误,如下文所述,则需要使用淘汰模型代码更新问题。很可能
用户
详细信息
不是一个函数。