В Angular 1.x, UI-Router был моим основным инструментом для этого. Вернувшись к обещанию "разрешить" значения, маршрутизатор просто дождался, когда обещание будет завершено, прежде чем указывать директивы.
В качестве альтернативы, в Angular 1.x, нулевой объект не приведет к сбою шаблона, поэтому, если я не возражаю временно неполному рендерингу, я могу просто использовать $digest
для рендеринга после того, как promise.then()
заполняет первоначально пустой объект модели.
Из двух подходов, если возможно, я предпочел бы подождать, чтобы загрузить представление, и отменить навигацию по маршруту, если ресурс не может быть загружен. Это спасает меня от работы "без навигации". EDIT: Обратите внимание, что это специально означает, что этот вопрос запрашивает 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 сделать шаблон после загрузки PROMISE. Обратите внимание, что в этом вопросе нет кода или принятого ответа.