首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >成员+ HTMLBars:“布尔”绑定属性不是布尔属性

成员+ HTMLBars:“布尔”绑定属性不是布尔属性
EN

Stack Overflow用户
提问于 2015-05-20 18:49:06
回答 2查看 739关注 0票数 2

我正在将一个Ember1.5handlebar应用程序迁移到当前稳定的Ember和HTMLBars上,而且绑定控制器属性似乎必须返回"disabled"null才能按照“禁用”DOM属性的要求工作。

代码语言:javascript
复制
<button disabled={{isDisabled}}> 

在车把中,isDisabled属性是一个布尔属性,一切都很好。

在HTMLBars中,我似乎需要:

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-20 20:40:44

通过使用绑定助手,我想出了一个合理的解决方案。

代码语言:javascript
复制
// ../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);

然后在模板中

代码语言:javascript
复制
<button disabled="{{boolean-disabled itemSelected}}">
票数 0
EN

Stack Overflow用户

发布于 2015-11-11 22:05:55

我遇到了同样的事情,我找到了一个对我有用的更短的解决方案。

代码语言:javascript
复制
<button disabled={{if itemSelected true null}}>a button<button>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30358020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档