Emberjs 能够在加载模型时自动更新视图。例如,使用以下模板
{{#each controller}}
{{name}}
{{each}}
每次加载控制器中的模型时,视图都会更新。
但是,如果我们需要实现一个不支持此类功能的自定义视图怎么办。准确地说,我需要一个呈现图形图表的视图。我为此使用了一些第三方库。我在控制器中拥有的数据代表了我的视图应该呈现为图表的一些点。通常使用这些第三方库我们需要设置数据然后调用draw
函数。
问题是当我只是将我的数据绑定controller.model
到我的chart
数据时,图表不知道这些数据是否真的被加载并且draw
函数崩溃了。所以我想,我需要一些观察者,但我不知道该放在哪里。我的尝试是观察controller.model.isLoaded
并draw
在它发生变化时打电话。但它只工作一次,当我在路线上来回走动时,draw
不再调用,因为模型都已加载。