Javascript 使用字符串的IF条件
我正在用Polymer 1.0编程,试图创建一个IF函数来更改属性的值。我的职能如下:Javascript 使用字符串的IF条件,javascript,polymer,polymer-1.0,Javascript,Polymer,Polymer 1.0,我正在用Polymer 1.0编程,试图创建一个IF函数来更改属性的值。我的职能如下: _searchButton: function(selectednamedropdown, selectedtypedropdown){ if (selectednamedropdown=="no_name_selected" && selectedtypedropdown=="no_type_selected"){ this.searchUsagesBtn = true }
_searchButton: function(selectednamedropdown, selectedtypedropdown){
if (selectednamedropdown=="no_name_selected" && selectedtypedropdown=="no_type_selected"){
this.searchUsagesBtn = true
} else{
this.searchUsagesBtn = false
}
}
在我看来,当selectednamedropdown等于no_name_selected且selectedtypedropdown等于no_type_selected时,函数应将searchUsagesBtn设置为true,当它们不是这些值时,设置为false
但是,即使满足这些条件,函数似乎也不会返回true。你知道为什么会这样吗?当我像这样运行您的函数时,感谢所有帮助:
let searchUsagesBtn;
function search(selectednamedropdown, selectedtypedropdown) {
if (
selectednamedropdown === "no_name_selected" &&
selectedtypedropdown === "no_type_selected"
) {
searchUsagesBtn = true;
} else {
searchUsagesBtn = false;
}
}
search("no_name_selected", "no_type_selected");
console.log("button: ", searchUsagesBtn);
我在控制台日志中得到按钮:true。所以这个函数中的输入可能不是字符串 问题在于JavaScript如何处理函数中的属性。函数存储的是第一个属性的新值和旧值,而不是第二个属性的任何值。解决方案包括制作两个函数来测试每个属性中的字符串。感谢所有帮助您是否尝试在函数中设置断点,以查看selectednamedropdown和selectedtypedropdown是否真的是您所认为的那样?我有-当我使用polymer时,我可以看到数据绑定并显示它们,以确认它们实际上是字符串,它们也应该放在控制台中。登录工作我想你在这个范围上有问题,从一个普通的JS角度思考。很明显,这个条件没有得到满足,因为if语句中的块会运行。我会在函数的开头放一个console.log来找出这两个变量的值。或者像Matt说的那样设置断点输入是我模板中的属性-它们实际上位于一个名为纸质列表框的组件上,我在html标记中将它们定义为selectednamedropdown=no_type_selected,所以我相信它们存储为stringsIt听起来有点奇怪。。与JavaScript本身无关。。也许您的意思是,您的方法是第一个属性上的简单观察者,而不是两个属性上的复杂观察者。。