假设我有一个自定义组件my-panel
支持JS(my-panel.js
)
this.get('targetObject')
此外,我从另一个自定义组件中引用/使用此组件,将my-sections.hbs
称为
{{my-panel}}
我的问题是我什么时候
this.get('targetObject') //Called inside my-panel.js
如何/在哪里查找属性targetObject
?链看起来像什么?
答案 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'));