iç hizmet işlevini çağırmak için mi
NOT: Bu (muhtemelen gerekmez) bazı ekstra maddeleri içerebilir ans. Böylece, ihtiyacınız olan şeylere konsantre olabilir ve diğer istenmeyen maddeleri görmezden gelebilirsiniz. Bunu daha küresel senaryoyu dikkate alarak ans koyduk (örn - ne checkpermission fonksiyonu içine bazı dış hizmet enjekte etmek istiyorsanız)
checkpermission.ts
import {Injector} from 'angular2/core';
import {appInjector} from './app-injector';
import {externalService} from './externalService'; <---------------------- //some external service
import {Router, ComponentInstruction} from 'angular2/router';
export const checkpermission= (next: ComponentInstruction, previous: ComponentInstruction) => {
let injector: Injector = appInjector(); // get the stored reference to the injector
let externalService: externalService= injector.get(externalService);
let router: Router = injector.get(Router);
// return a boolean or a promise that resolves a boolean
return new Promise((resolve) => {
//here you can play with externalService
if(something is true)
resolve(true);
else
resolve(false);
});
};
somecomponent. tc
Bazı bileşenlerde che'yi kullanabilirsiniz. Böyle,
import {checkpermission} from './checkpermission';
@CanActivate((next: ComponentInstruction, previous: ComponentInstruction) => {
return checkpermission(next, previous);
})
app-injector.ts
import {Injector} from 'angular2/core';
let appInjectorRef: Injector;
export const appInjector = (injector?: Injector):Injector => {
if (injector) {
appInjectorRef = injector;
}
return appInjectorRef;
};
Ben Sana gereksinimi karşılamak umut ckpermission.ts.
Çok çalışıyoruz –
Welcom @ deepk. Lütfen ihtiyaçlarınıza göre kullanın. Bu ans bazı ekstra şeyler içerebilir (sadece küresel senaryoyu göz önünde bulundurarak referans için). – micronyks
okay @micronyks. Bu global işlevi sınıf içi parametresiyle çağırmak mümkün mü? –