1

После обновления моего приложения до углового2 до RC4 я возвращаю эту ошибку. У меня есть LoginService впрыскивается в AppComponent в новых webpack starter пучок.Угловой RC4, Один или несколько поставщиков для «Приложения» не были определены: [?]

Я пытался вложить AppComponent в маршруты, но это не сработает. Кроме того, я был в том числе LoginService внутри index.ts с APP_PROVIDERS, но я получаю другую ошибку

Invalid поставщик - только экземпляры провайдера и типа разрешены, получил: не определено

кладя Также LoginService в бутстрап, но без эффекта.

Что не так с Angular2 в RC4? Компоненты больше не находятся в дереве?

Это моя конфигурация маршрутизатора для маршрутизатора "3.0.0-beta.2":

export const routes: RouterConfig = [ 
    { path: '', component: StartPageComponent }, 
    { path: 'login', component: StartPageComponent }, 
    { 
    path: 'dashboard', component: 'DashboardComponent', 
    canActivate: [WebpackAsyncRoute], 
    children: [ 
     { path: '', component: 'ContentDesktopComponent' } // must be included 
    ] 
    }, 
    { path: '**', component: NoContent } 

]; 

И я хочу иметь LoginService доступное для каждых маршрутов.

Мой app.component выглядит следующим образом:

@Component({ 
    selector: 'app', 
    pipes: [],  
    providers: [LoginService, SearchService, TasksService], 
    directives: [RouterActive], 
    encapsulation: ViewEncapsulation.None, 
    styles: [ 
    require('!raw!normalize.css'), 
    require('!raw!../assets/css/animate.css'), 
    require('./app.component.scss') 
    ], 
    template: require('./app.component.html') 
}) 
export class App { 

    constructor(private translate: TranslateService, 
    public appState: AppState) { 

    Resource.map(ENDPOINTS.API.toString(), 'http://localhost:3002/api'); 
    let userLang = navigator.language.split('-')[0]; // use navigator lang if available 
    userLang = /(fr|en)/gi.test(userLang) ? userLang : 'pl'; 
    translate.setDefaultLang('en'); 
    translate.use('pl'); 

    } 

    ngOnInit() { 

    } 

} 

поставщик не доступны для маршрутизаторов ... сейчас ... в rc4

LoginService:

@Injectable() 
export class LoginService { 

    private user: User = <User>{ 
     avatar_url: '/assets/img/avatars/u6.png' 
    }; 

    constructor(private rest: Resource<ENDPOINTS, User, User[]>) { 
     this.rest.add(ENDPOINTS.API, 'users'); 
    } 
+0

Пожалуйста, разместите код, демонстрирующий, что вы пытались выполнить. –

+0

Как выглядит класс 'App', включая' @Component() 'decorator? –

ответ

0

Вам нужно укажите TranslateService и AppState где-либо, либо в bootstrap(...), либо в @Component(..., providers: [...]

+0

Еще: «Один или несколько поставщиков для« Приложения »не были определены: [?, SearchService, TasksService, TranslateService] .' –

+0

Похоже, что' LoginService' импортирован неправильно. Обновите свой вопрос кодом, который у вас есть. Я не знаю, что ты изменил. –

+0

ошибка его переполнения, потому что теперь у меня есть 4 провайдера: 'провайдеры: [LoginService, SearchService, TasksService, TranslateService],' –