自定义组件内的Ember查找属性

时间:2016-03-21 12:34:54

标签: javascript jquery ember.js

假设我有一个自定义组件my-panel

支持JS(my-panel.js

this.get('targetObject')

此外,我从另一个自定义组件中引用/使用此组件,将my-sections.hbs称为

{{my-panel}}

我的问题是我什么时候

this.get('targetObject') //Called inside my-panel.js

如何/在哪里查找属性targetObject?链看起来像什么?

1 个答案:

答案 0 :(得分:0)

它在支持自定义组件js(可能)的范围内查找。

链/范围实际上是从this对象开始的,因此根据this在该范围内的内容,这就是它正在查找的位置。如果你有一个不同对象的引用,或者在回调函数中,我的陈述可能不是真的。

App.MyCompComponent = Ember.Component.extend({
  foo: 'bar',
  actions: {
    doit: function(){
      // `this` is the scope of an instance of this component.
      alert(this.get('foo'));
    }
  }
});

http://emberjs.jsbin.com/totibidohe/edit?html,js,output

您也可以将其视为在模板中存在的范围之外,只需创建一个实例并引用该实例即可。

var MyCompComponent = Ember.Component.extend({
  foo: 'bar',
  actions: {
    doit: function(){
      alert(this.get('foo'));
    }
  }
});

var j = MyCompComponent.create();

alert(j.get('foo'));

http://emberjs.jsbin.com/xekohoguto/1/edit?html,js,output