2016-05-02 9 views
0

私はAngular2を勉強していますが、bind()provide()の違いは何ですか?私のアプリケーションでは、私は違いを見つけることができないので、どの違いを使用するかについてより良い決定をすることが何であるか不思議です。現時点で最新バージョンのを使用しています。Angular2:beta17バインドとアンギュラ2の差の差

バインド

import { bootstrap } from 'angular2/platform/browser'; 

import { ROUTER_PROVIDERS } from 'angular2/router' 
import { LocationStrategy, HashLocationStrategy } from 'angular2/platform/common'; 
import { bind } from 'angular2/core'; 

// Main Component 
import { AppComponent } from './app.component'; 

bootstrap(AppComponent, [ 
    ROUTER_PROVIDERS, 
    bind(LocationStrategy).toClass(HashLocationStrategy) 
]); 

を提供:

import { bootstrap } from 'angular2/platform/browser'; 

import { ROUTER_PROVIDERS } from 'angular2/router' 
import { LocationStrategy, HashLocationStrategy } from 'angular2/platform/common'; 
import { provide } from 'angular2/core'; 

// Main Component 
import { AppComponent } from './app.component'; 

bootstrap(AppComponent, [ 
    ROUTER_PROVIDERS, 
    provide(LocationStrategy, { useClass: HashLocationStrategy }) 
]); 

答えて

2

を参照してください。

provide機能はProviderクラスのコンストラクタを呼び出すだけのラッパーです:

new Provider(token, { ... }); 

bindプロバイダを構築するためにProviderBuilderヘルパークラスを利用します。

provide(token, { ... }); 

はより同じです。 bindが廃止され、一方、ProviderBuilderはなく、この方法を使用することができる。

ProviderBuilder pb = new ProviderBuilder(); 
pb.toClass(type); 
pb.toValue(value); 
pb.toFactory(factory); 

はより同じである。

new Provider(token, { useClass: ... }); 
new Provider(token, { useValue: ... }); 
new Provider(token, { useFactory: ... });