2016-10-16 7 views
0

Я проработал целый час или два, пытаясь заставить мое приложение работать, но я не могу получить простую инъекцию для работы.Угловой 2 не может решить все параметры

У меня есть базовый модуль, который имеет GlobalsService при условии:

core.module.ts:

@NgModule({ 
    declarations: [ 
    CoreComponent, 

    SiteHeaderComponent, 

    // Pages 
    DocumentationComponent 
    ], 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    HttpModule, 
    RouterModule.forRoot([ 
     {path: 'documentation', component: DocumentationComponent}, 
     {path: '', component: CoreComponent} 
    ]), 
    DocumentationModule, 
    SharedModule 
    ], 
    providers: [ 
    GlobalsService, 
    RegexService, 
    UtilsService 
    ], 
    bootstrap: [CoreComponent] 
}) 
export class CoreModule {} 

Но когда я пытаюсь использовать его в site-header.component.ts:

import {Component} from '@angular/core'; 
import {GlobalsService} from '../../shared'; 

@Component({ 
    selector: 'site-header', 
    templateUrl: './site-header.component.html', 
    styleUrls: ['./site-header.component.scss'] 
}) 
export class SiteHeaderComponent { 

    ns: string; 

    constructor(private globals: GlobalsService) { 
    this.ns = globals.ns; 
    } 
} 

globals.service.ts:

import {Injectable} from '@angular/core'; 

@Injectable() 

export class GlobalsService { 

    // App namespacer 
    ns: string = 'test'; 
} 

Он просто говорит мне, что он не может разрешить параметр для GlobalsService, хотя он может найти службу, потому что, если я изменю его импорт из ../../shared, он выдает сообщение об ошибке, в котором говорится, что он не может найти его, так что это не так проблема кажется.

EDIT:

У меня есть shared папку, которая содержит директивы, трубы, услуги и общие модули. Внутри я использую файл index.ts, чтобы экспортировать все, поэтому путь только ../../shared, а не ../../shared/services/globals.service.ts.

См изображения:

shared folder

shared/services/index.ts:

export * from './globals/globals.service'; 
export * from './regex/regex.service'; 
export * from './utils/utils.service'; 

shared/index.ts:

export * from './directives'; 
export * from './modules'; 
export * from './pipes'; 
export * from './services'; 

Может кто-то выяснить, что на земле, я здесь отсутствует?

+0

Можете ли вы предоставить свой класс GlobalService тоже? –

+0

Возможно, вы забыли добавить @Injectable в него? –

+0

@GevorgNarimanyan Nope. Раньше я работал над этим, но потом, должно быть, я изменил что-то, что полностью сломало его. – Chrillewoodz

ответ

1

Я предполагаю, что вы должны поместить имя файла из папки общего доступа

import {GlobalsService} from '../../shared/global.service'; 

вместо

import {GlobalsService} from '../../shared'; 
+0

Но я использую файл 'index.ts' в общей папке, которая экспортирует все изнутри. – Chrillewoodz

+0

@Chrillewoodz why' index.ts'? где вы это сделали? –

+0

См. Обновленный вопрос. – Chrillewoodz

Смежные вопросы