我有一条model
方法返回承诺的路由。根据{{3}},这导致某些操作(呈现,setupController
)被延迟,直到承诺得到解决。
这对我来说并不好。我希望视图立即呈现。然后,一旦模型可用,我想在控制器上设置属性。这将导致重新呈现视图的适当部分。
这样做的正确方法是什么?特别是我不想对我的控制器内的promises进行操作。理想情况下,我会在路由中完成所有依赖项设置,就像现在的情况一样。
答案 0 :(得分:2)
使用LoadingRoute
解决问题,例如:
请注意,较新的版本(我认为> = 1.3)也支持更复杂的方案。更多细节在这里:
http://emberjs.com/guides/routing/loading-and-error-substates/
答案 1 :(得分:1)
有类似的问题。通过等待didInsertElement
在View
上触发,然后使用this.get('controller').send('actionInsideControllerHere');
在控制器上调用操作,我解决了即时渲染问题。该操作调用我的一个模型(对象),并且还更改控制器上的属性以在等待数据的组件上显示“微调器”。可能有更好的方法来做到这一点,但这就是我现在想出的。如果这适用于你,请告诉我。