控制器中的this.get是'不是函数'

时间:2016-12-27 03:56:40

标签: ember.js

我正在尝试设置html元素的样式,我读到我必须这样做:

if ()

然后在我的hbs文件中,我写了

bid: {
  popUpContainerDisplay: "none",
  popUpDisplay: Ember.computed('bid.popUpContainerDisplay', function() {
    return Ember.String.htmlSafe("display: " + this.get('bid.popUpContainerDisplay'));
  })
},

然而,这给了我一些错误:

<div id="popUpContainer" style={{bid.popUpDisplay}}>

我做错了什么?感谢。

2 个答案:

答案 0 :(得分:2)

在您尝试使用它的对象中不存在get方法。

get方法来自Ember.Observable,由Ember.Object类使用。你需要做的是将bid属性声明为Ember.Object,使用extend或create,如下所示:

bid: Ember.Object.extend({
    popUpContainerDisplay: "none",
    popUpDisplay: Ember.computed('bid.popUpContainerDisplay', function() {
       return Ember.String.htmlSafe("display: " + this.get('bid.popUpContainerDisplay'));
    })
})

答案 1 :(得分:0)

您需要将计算属性放在bid之外。

bid: {
    popUpContainerDisplay: "none"
},
popUpDisplay: Ember.computed('bid.popUpContainerDisplay', function() {
    return Ember.String.htmlSafe("display: " + this.get('bid.popUpContainerDisplay'));
})