我正在将一个Ember1.5handlebar应用程序迁移到当前稳定的Ember和HTMLBars上,而且绑定控制器属性似乎必须返回"disabled"或null才能按照“禁用”DOM属性的要求工作。
<button disabled={{isDisabled}}> 在车把中,isDisabled属性是一个布尔属性,一切都很好。
在HTMLBars中,我似乎需要:
Ember.Controller.extend({
isDisabled: function() {
if(this.get('itemSelected')){
return null;
} else {
return 'disabled';
}
}.property('itemSelected')
});这是正确的吗?当然,这会带来一个问题,因为在应用程序的其余部分中,布尔属性应该是一个布尔属性,因此要使其按预期工作,我需要添加一个额外的计算属性来使用"string"/null值集来驱动“boolean”DOM属性。
有没有其他人遇到过这种情况,或者与“检查”相关的问题?
使用:
EMB1.11.3+ HTMLBars
成员-cli 0.2.3
发布于 2015-05-20 20:40:44
通过使用绑定助手,我想出了一个合理的解决方案。
// ../helpers/boolean-disabled.js
import Ember from 'ember';
export function booleanDisabled(params/*, hash*/) {
var disabled = params[0];
if(disabled) {
return 'disabled';
} else {
return null;
}
}
export default Ember.HTMLBars.makeBoundHelper(booleanDisabled);然后在模板中
<button disabled="{{boolean-disabled itemSelected}}">发布于 2015-11-11 22:05:55
我遇到了同样的事情,我找到了一个对我有用的更短的解决方案。
<button disabled={{if itemSelected true null}}>a button<button>https://stackoverflow.com/questions/30358020
复制相似问题