Angular 2でプリローダーを実装するには、どのような方法がありますか?Angular2でプリローダーを作成する方法
5
A
答えて
8
Angular2のスピナーについて話している場合は、以下の回答を考慮する必要があります。
Angular2では非常に簡単にスピンナの実装が見つかりました。そのために、sharedService
とsharedObject
を作成しました。
sharedServiceは、二つの方法、すなわちshowLoader()
とloader
オブジェクトを管理し、それぞれtrue
とfalse
にそのisLoading
プロパティを設定hideLoader()
を有しています。 loader
オブジェクトがsharedObject
なので、isLoading
プロパティをtrue
またはfalse
に変更すると、メインコンポーネントの*ngIf="loader.isLoading"
の部分が以下のリンクに示すように反応します。
Plunker - Spinner implementation with sharedService and sharedobject
注:スピナーを実装するためのさまざまな方法があります。 Yonはスピナーコンポーネントを作成し、hide/showで再生できます。だから、他にも簡単な方法があるかもしれない。実際、スピナーを扱うには複数の方法があります。
sharedService.ts
import {Component, Injectable} from 'angular2/core'
export interface ILoader {
isLoading:boolean=false;
}
@Injectable()
export class sharedService {
loader:ILoader={isLoading:false};
showLoader()
{
console.log('showloader started');
this.loader.isLoading=true;
}
hideLoader()
{
this.loader.isLoading=false;
}
}
boot.ts
import {Component,bind} from 'angular2/core';
import {ROUTER_PROVIDERS,RouteConfig, ROUTER_DIRECTIVES,APP_BASE_HREF,LocationStrategy,RouteParams,ROUTER_BINDINGS} from 'angular2/router';
import {bootstrap} from 'angular2/platform/browser';
import {HTTP_PROVIDERS} from 'angular2/http';
import 'rxjs/Rx';
import{ComponentOne} from 'src/cone';
import{ComponentTwo} from 'src/ctwo';
import{FriendsList} from 'src/myfriends';
import {sharedService} from 'src/sharedService';
@Component({
selector: 'my-app',
template: `
<-- html required for spinner ------------------------>
<style>
#mydiv {
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
z-index:1000;
background-color:grey;
opacity: .8;
}
.ajax-loader {
position: absolute;
left: 50%;
top: 50%;
margin-left: -32px; /* -1 * image width/2 */
margin-top: -32px; /* -1 * image height/2 */
display: block;
}
</style>
<div id="mydiv" *ngIf="loader.isLoading">
<img src="lib/jQuery/images/ajax-loader.gif" class="ajax-loader"/>
</div>
<-- til here for spinner ------------------------>
<h1>Component Router</h1>
<nav>
<a [routerLink]="['ComponentOne']">One</a><hr/>
<a [routerLink]="['ComponentTwo']">Two</a><hr/>
<a [routerLink]="['FriendsList']">Friends</a>
</nav>
<router-outlet></router-outlet>
`,
directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
{path:'/component-one', name: 'ComponentOne', component: ComponentOne},
{path:'/component-two', name: 'ComponentTwo', component: ComponentTwo}
{path:'/myfriends', name: 'FriendsList', component:FriendsList}
])
export class AppComponent {
loader:ILoader;
constructor(private ss:sharedService)
{
this.loader=this.ss.loader;
}
}
bootstrap(AppComponent, [HTTP_PROVIDERS,sharedService,
ROUTER_PROVIDERS,bind(APP_BASE_HREF).toValue(location.pathname)
]);
myFriends.ts
import {Component,View,CORE_DIRECTIVES} from 'angular2/core';
import {Http, Response,HTTP_PROVIDERS} from 'angular2/http';
import 'rxjs/Rx';
import {Observable} from 'rxjs/Observable';
import {sharedService} from 'src/sharedService';
@Component({
template: `
<h1>My Friends</h1>
<ul>
<li *ngFor="#frnd of result">
{{frnd.name}} is {{frnd.age}} years old.
</li>
</ul>
`,
directive:[CORE_DIRECTIVES]
})
export class FriendsList{
result:Array<Object>;
constructor(http: Http,private ss:sharedService) {
this.ss.showLoader();
this.ss.fetchData().subscribe((result) =>{
this.result =result
},
(err)=>console.log(err),
()=>{
console.log("Done")
this.ss.hideLoader();
});
}
}
2
あなたがTHIを試すことができますsのチュートリアル:
記事へのリンク:https://blog.slinto.sk/angular-http-preloaders-3ee7bd937ee0
GitHubのリポジトリ:https://github.com/slinto/ng-preloader-example
関連する問題
- 1. プリローダーでJavaFXアプリケーションを作成
- 2. Angular2でダイアログサービスを作成する方法
- 3. Angular2でカスタムバリデータを作成する方法
- 4. プリローダーのページを作成する
- 5. angular2でangular2 jwtトークンを作成する方法
- 6. プリローダーでローカルフラッシュファイルをデバッグする方法 - セキュリティエラー
- 7. angular2ローディングインジケータボタンの作成方法
- 8. jsonを使用してAngular2でテーブルを作成する方法
- 9. TypescriptとAngular2で相対URLのインポートを作成する方法
- 10. Angular2でSVGコンポーネントを動的に作成する方法は?
- 11. angular2で動的ルートを作成する方法は?
- 12. Angular2でプレフィルフォームを作成する方法は?
- 13. 既存のangular2プロジェクトで電子デスクトップアプリケーションを作成する方法
- 14. angular2でカスタムモーダルダイアログを作成する最も良い方法は?
- 15. angular2で動的テーブルを作成する方法は?
- 16. VS 2017のASP.NETコアでAngular2プロジェクトを作成する方法
- 17. Angular2で他のコンポーネントの中にコンポーネントを作成する方法
- 18. フレックス:プリローダーの進捗を知る方法?
- 19. angular2ライブラリプロジェクトの作成方法は?
- 20. すべてのhttpリクエスト(angular2)にプリローダーを追加するには?
- 21. STSにスプリングブートバックエンドを持つAngular2型スクリプトを作成する方法
- 22. JavascriptまたはJQueryでswfsのプリローダーを作成する方法はありますか?
- 23. Angular2アプリに基づいてAndroidアプリを作成する方法
- 24. Angular2:FormGroupのカスタムバリデータを作成する方法は?
- 25. angular2ネストされたデータエントリを作成する方法
- 26. 角のcliで作成された私のAngular2アプリを作る方法
- 27. Angular2でコンテナコンポーネントを作成するには
- 28. Angular2素材でタブを作成する
- 29. JSONでAngular2 POSTを作成する
- 30. PhoneGapでangular2アプリを作成
プリローダーは、スピナーを意味? – micronyks