我在观察一个属性来绘制图表。
问题是:观察者在视图inDOM
之前触发。
有没有办法等到状态改变?
App.ReportsView = Ember.View.extend({
drawChart: function() {
console.log(this.get('state'));
// draw some charts
}.observes('controller.chartData.projects')
});
答案 0 :(得分:1)
View有一个 state 属性,您可以在其中检查它是否在DOM中,但它不是公共API。
通过侦听 didInsertElement 事件,可以在视图中设置属性。
这可能是一种可行的方法(未经测试):
App.ReportsView = Ember.View.extend({
setInDOM: function(){
this.set('isInDom', true);
this.drawChart();
}.on('didInsertElement'),
tryDrawChart: function() {
if ( this.get('isInDom') ) {
this.drawChart();
}
}.observes('controller.chartData.projects'),
drawChart: function() {
}
});