Javascript 如何在knockout js中的函数中使用if?
我的功能有问题。我想在另一个变量的基础上设置一个变量的值true或false,不管它是否为空,而不是在knockout js中Javascript 如何在knockout js中的函数中使用if?,javascript,knockout.js,Javascript,Knockout.js,我的功能有问题。我想在另一个变量的基础上设置一个变量的值true或false,不管它是否为空,而不是在knockout js中 self.editData = function (data) { self.id(data.id()); self.nscto(data.nscto()); if (nscto != null && "".equals(nscto)){ self.view(true) } } 在这里,我
self.editData = function (data) {
self.id(data.id());
self.nscto(data.nscto());
if (nscto != null && "".equals(nscto)){
self.view(true)
}
}
在这里,我写下如果我们在java语言中使用的条件,我想在击倒中使用这个场景,我该怎么做 您使用了两个不同的变量(
nsct
和nsc
)和一个不存在的运算符(=!
)。条件的最后一部分将被解释为赋值:nsc=(!“”)
此外,逻辑是错误的,不存在同时为null的值和空字符串,因此该条件始终为true。您可以使用&&
运算符:
if (nsct != null && nsct != "") {
self.view(true);
}
如果要在条件不为真时将其设置为false,则还应使用else
:
if (nsct != null && nsct != "") {
self.view(true);
} else {
self.view(false);
}
也可以使用条件的值来执行此操作:
self.view(nsct != null && nsct != "");
你写它的方式你需要
self.editData = function (data) {
self.id(data.id);
self.nscto(data.nscto);
if (self.nscto() != null && self.nscto() == ""){
self.view(true);
}
}
有很多方法可以满足您的需求:
if ( null != self.nscto() && "" === self.nscto() )
{
self.view(true)
}
或
或者更简单
self.view( null != self.nscto() && "" === self.nscto() )
我想在knockout js中使用它,它的语法是否有效it@user2142786:是的。Knockout只是一个Javascript库,它没有自己的语法。是否定义了
nsct
/nscto
?它并没有代码显示的那么远。我想你是想对照self.nscto检查一下。在这种情况下,这个答案将无法正确工作,因为可观察对象没有展开(我猜这也是您所说的击倒语法的意思)。因为我认为Guffa的最后一个代码块是最好的,所以我将用它来演示:self.view(self.nscto()!=null&&self.nscto()!=”代码>。如果您还想检查未定义的
(我想您是这样做的):self.view(self.nscto())
,那么这就更简单了。有人甚至会说,你根本不需要self.view
。此外,我觉得@Guffa应该使用严格的比较运算符,因为你明确地检查空值和空字符串值。如果不需要严格的相等,那就支持我之前使用self.view(self.nscto())
的观点。同意?你能回答这个问题吗?
self.view( null != self.nscto() && "" === self.nscto() )