Ember.on
機能(またはFunction.prototype.on
)は、いくつかのエンバー実装の詳細と特殊機能を返します。
export default Ember.Component.extend({
...
_initGoogleDFP: <some-special-function-object>,
...
});
エンバーは、これらの特別なオブジェクトを探して、あなたのクラス定義のキーを反復し、最終的にEmber.addListener('didInsertElement', yourFunction)
を呼び出します。
通常は、.on
を使用しないでください。ややこしい。もしあなたが2つの.on('didInsertElement')
を持っていたら、どちらの順番で彼らは呼ばれますか?知るか。
あなたのコードを書くための好ましい方法は、didInsertElement
上書きすることです:あなたは、他の場所から_initGoogleDFP
を呼び出し、それを機能させるために必要がある場合は
export default Ember.Component.extend({
...
didInsertElement() {
this._super(...arguments);
var self = this;
loadGoogle(this.siteSettings).then(function() {
...
});
}
...
});
を、あなたはdidInsertElement
からそれを呼び出すことができます。
export default Ember.Component.extend({
...
_initGoogleDFP: function() {
var self = this;
loadGoogle(this.siteSettings).then(function() {
...
});
},
didInsertElement() {
this._super(...arguments);
this._initGoogleDFP();
}
...
});
このコードはdiscourseプラグインからのものです。そのため、didInsertElementイベントに接続するため、コンポーネントは談話環境で非同期に読み込まれます。 – megas