![](/img/trans.png)
[英]Using conditional statement in bind-attr Handlebars Ember.js
[英]Ember.js IF statement with OR conditional causing unexpected behaviour
似乎是一个简单的问题,但是我无法弄清楚为什么以下代码根本行不通...
关于gender1
:
如果我使用计算属性,并尝试使用条件OR对一些字符串进行检查,则即使输入的gender1包含以下项之一,输出到标签中的结果也始终是“ male / female / other” ...
关于gender2
:
但是,如果我不使用条件OR并仅针对“男性”进行测试,那么一切都会按预期进行...
模板
<script type="text/x-handlebars" data-template-name="index">
<label>:</label><br/><br/>
<div>
<label>Gender_not_working:</label>
{{input value=gender1}}
<label>{{verifyGender1}}</label>
</div><br/>
<div>
<label>Gender_working:</label>
{{input value=gender2}}
<label>{{verifyGender2}}</label>
</div><br/>
</script>
控制者
App.IndexController = Ember.Controller.extend({
gender1: "",
gender2: "",
verifyGender1: Ember.computed('gender1', function(){
console.log(this.get('gender1').toLowerCase());
if(this.get('gender1').toLowerCase() !== "male"||"female")
{return "male/female/other";}
else
{return "MKay";}
}),
verifyGender2: Ember.computed('gender2', function(){
console.log(this.get('gender2').toLowerCase());
if(this.get('gender2').toLowerCase() !== "male")
{return "male/female/other";}
else
{return "MKay";}
}),
});
这个问题也出现在我创建的JS Bin中...
那是一个简单的JavaScript错误。
您不能像尝试(val1 !== val2 || val3)
那样将1个值与2个“潜在”值进行比较。 您可以执行(val1 !== val2 && val1 !== val3)
或([val2, val3].indexOf(val1) >= 0)
,也可以通过其他几种方法来达到相同的效果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.