2016-05-02 12 views
0

Ich bin beschäftigt, Angular2 zu lernen, und ich frage mich, was der Unterschied zwischen bind() und provide() ist. In meiner Anwendung kann ich keine Unterschiede finden, also frage ich mich, was die Unterschiede sind, um eine bessere Entscheidung darüber zu treffen, welche zu verwenden. Im Moment verwende ich die neueste Version von Angular2: beta17.Unterschied zwischen binden und in Angular2 zur Verfügung stellen

Beispiel binden:

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) 
]); 

Beispiel bieten:

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 }) 
]); 

Antwort

2

auch als Günter sagte bind im Gegensatz zu provide veraltet.

Die provide Funktion ist nur ein Wrapper, der den Konstruktor der Provider Klasse aufruft:

provide(token, { ... }); 

ist die gleiche als:

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

bind nutzt die ProviderBuilder Hilfsklasse einen Anbieter zu bauen. Während bind veraltet ist, ist die ProviderBuilder nicht und kann auf diese Weise verwendet werden:

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

ist die gleiche als:

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