立即在Ember.js中渲染

时间:2014-02-20 18:04:21

标签: javascript ember.js routes promise ember-router

我有一条model方法返回承诺的路由。根据{{​​3}},这导致某些操作(呈现,setupController)被延迟,直到承诺得到解决。

这对我来说并不好。我希望视图立即呈现。然后,一旦模型可用,我想在控制器上设置属性。这将导致重新呈现视图的适当部分。

这样做的正确方法是什么?特别是我不想对我的控制器内的promises进行操作。理想情况下,我会在路由中完成所有依赖项设置,就像现在的情况一样。

2 个答案:

答案 0 :(得分:2)

使用LoadingRoute解决问题,例如:

http://jsfiddle.net/u3w9Q/

请注意,较新的版本(我认为> = 1.3)也支持更复杂的方案。更多细节在这里:

http://emberjs.com/guides/routing/loading-and-error-substates/

答案 1 :(得分:1)

有类似的问题。通过等待didInsertElementView上触发,然后使用this.get('controller').send('actionInsideControllerHere');在控制器上调用操作,我解决了即时渲染问题。该操作调用我的一个模型(对象),并且还更改控制器上的属性以在等待数据的组件上显示“微调器”。可能有更好的方法来做到这一点,但这就是我现在想出的。如果这适用于你,请告诉我。