在 Angular 1.x 中,UI-Router 是我的主要工具。通过返回“resolve”值的承诺,路由器将在呈现指令之前简单地等待承诺完成。
或者,在 Angular 1.x 中,空对象不会使模板崩溃 - 因此,如果我不介意暂时不完整的渲染,我可以在填充最初为空的模型对象$digest
后使用来渲染。promise.then()
在这两种方法中,如果可能的话,我宁愿等待加载视图,如果无法加载资源,则取消路线导航。这为我节省了“取消导航”的工作。编辑:请注意,这特别意味着此问题要求使用 Angular 2 期货兼容或最佳实践方法来执行此操作,并要求尽可能避免使用“猫王操作员”!因此,我没有选择那个答案。
然而,这两种方法在 Angular 2.0 中都不起作用。当然,有一个标准的解决方案计划或可用于此。有谁知道它是什么?
@Component() {
template: '{{cats.captchans.funniest}}'
}
export class CatsComponent {
public cats: CatsModel;
ngOnInit () {
this._http.get('/api/v1/cats').subscribe(response => cats = response.json());
}
}
以下问题可能反映了同样的问题:Angular 2 render template after the PROMISE with data is loaded。请注意,问题中没有代码或可接受的答案。