現在、私のNG2アプリ内にはリゾルバが使用されており、これはsignalrに接続します。
私はルートの設定の中でリゾルバを設定しました。そのため、宛先ページへのナビゲーションに応じて解決関数が呼び出されます。Angular 2 - router:ルート解決中にページ遷移をアニメートする方法
宛先ページの初期化時にアニメーションを表示することができました。
ただし、私のリゾルバの解決中にアニメーションのように 'is-busy is-busy 012'を表示したいと思いますが、これを行う方法はわかりません。助言がありますか?
は、これが私の現在の設定です:
//resolver.ts
@Injectable()
export class ConnectionResolver implements Resolve<SignalRConnectionMock> {
constructor(private _signalR: SignalR) {}
resolve() {
console.log('HomeRouteResolver. Resolving...');
return new SignalRConnectionMock();// this._signalR.connect();
}
}
//inside route.ts
{ path: 'docs',
component: DocumentationComponent,
resolve: { connection: ConnectionResolver }
}
//router.ts
import { trigger, state, animate, style, transition } from '@angular/core';
//router.transition.ts
export function routerTransition() {
return slideToLeft();
}
function slideToLeft() {
return trigger('routerTransition', [
state('void', style({position: 'fixed', width: '100%'})),
state('*', style({position: 'fixed', width: '100%'})),
transition(':enter', [ // before 2.1: transition('void => *', [
style({transform: 'translateX(100%)'}),
animate('0.5s ease-in-out', style({transform: 'translateX(0%)'}))
]),
transition(':leave', [ // before 2.1: transition('* => void', [
style({transform: 'translateX(0%)'}),
animate('0.5s ease-in-out', style({transform: 'translateX(-100%)'}))
])
]);
}
//home.component.ts
import { routerTransition } from './route.transition';
@Component({
selector: 'home',
animations: [routerTransition()],
host: {'[@routerTransition]': ''}
})
export class HomeComponent {}