我有一个Ember应用程序。在给定的路线中,我有一个未立即加载的手工模型。因此,我将其作为承诺交付:
export default Ember.Route.extend({
model() {
return MyModel.create().promise();
}
})
不要过分担心MyModel
的工作原理。重要的是它返回RSVP承诺。
因此,Ember转换为loading
路线。在那里,我有一个模板,可以正确显示一个微调器,一旦解析了promise,就转换到正确的路径。
我的问题是:如何展示真正的进展? MyModel
做了一些相对复杂的事情,有几个步骤,我想展示这些步骤的实际进展。我希望展示有状态的进展,而不是无国籍的旋转器。 MyModel
(或者更确切地说,它的承诺)知道它的进展,但我不知道如何将它传达给模板。
我为这个加载状态实现了一个路由和一个控制器。两者都正确加载,但似乎都没有访问任何可能有用的东西。事实上,我不能看到RSVP承诺甚至有一个进度处理程序,就像其他库一样。我错过了什么吗?
答案 0 :(得分:1)
您可以使用Route
的{{1}}功能访问其他控制器。
因此,在您的主要路线中,您可以使用controllerFor
获取this.controllerFor('loading')
并在其中设置属性。
你的LoadingController
钩子看起来像这样:
model
我创建了一个JSBin,举例说明了这一点。