我有一個App.WidgetView
,它負責設置和渲染一個非常昂貴的第三方UI元素,讓我們調用這個UI元素widget
。 這個widget
有一個refresh()
方法。我在App.WidgetView
中定義了一個refreshWidget()
方法,該方法調用widget.refresh()
。Ember.js - 在視圖中初始化的視圖中調用方法
App.WidgetView = Em.View.extend({
content: null,
widget: null,
init: function() {
this._super();
//initialize widget using content
},
refreshWidget: function() {
this.get('widget').refresh();
}
});
我從App.widgetController
{{#each App.widgetController}}
{{view App.WidgetView contentBinding="this"}}
{{/each}}
的呈現使用#each
循環提取數據我的網頁上WidgetView
個名單現在我必須App.widgetController
一個refreshAll()
方法和IM不太舒爾如何幹淨地做這個。現在我有一個refresher
財產App.widgetController
開始於0
並獲得侵入每次refreshAll
被調用。
App.widgetController.reopen({
refresher: 0,
refreshAll: function() {
this.incrementProperty('refresher');
}
});
然後在App.WidgetView
有這勢必App.widgetController.refresher
一個refresherBinding
和一個稱爲refreshWidget
時refresher
改變觀察者
App.WidgetView.reopenClass({
refresherBinding: 'App.widgetController.refresher',
refresherChanged: function() {
this.refreshWidget();
}.observes('refresher')
});
它的工作,但我想知道是否有一個推行清潔的方式做它。