2016-12-22 2 views
1

Я пытаюсь импортировать компонент в мою инъекционную службу, но кажется, что я делаю что-то неправильно. Это происходит и для других страниц в аналогичных ситуациях. Текущая ситуация, похоже, происходит, потому что LoginPage, который я пытаюсь импортировать в SessionService, требует SessionService, который где-то пахнет бесконечным циклом. Любые идеи о том, как я должен решить эту проблему, кроме того, что она не включает компонент страницы в инъекционном SessionService?Не удается разрешить параметры для компонента из внутри инъектируемого

Моя текущая архитектура построена так, что мне нужно перенаправить на страницу входа, если сеанс не существует. Для Ionic NavController требуется компонент страницы для перехода в стек навигации. Альтернативные способы решения проблемы перенаправления приветствуются, но я также хотел бы понять, почему это происходит.

Uncaught Error: Can't resolve all parameters for LoginPage: (?, ContentService). 

session.service.ts

@Injectable() 
export class SessionService { 
    constructor(private content: ContentService) {} 
} 

login.page.ts

@Component({ 
    templateUrl: './login.page.html' 
}) 
export class LoginPage { 
    constructor(public session: SessionService, 
       public content: ContentService) { 
    } 

и для тех, кто просил его, content.service.ts

@Injectable() 
export class ContentService { 
    constructor(private authHttp: AuthHttp) { 
    } 
} 

app.module.ts

@NgModule({ 
    declarations: [ 
    LoginPage 
    ], 
    entryComponents: [ 
    LoginPage 
    ], 
    providers: [ 
    SessionService, 
    ContentService 
    ] 
}) 
export class AppModule { 
} 

Я использую Угловой 2.2.1 с ионической 2.0.0-rc.4.

+0

ли вы определить '' ContentService' как SessionService'? –

+0

Почему вы хотите импортировать компонент в сервисы? – raj

+0

Из вышеприведенного кода не очевидно, что SessionService определяется как поставщик. @ Инъекционный декоратор недостаточно. Неясно, где и почему эта * LoginPage, которую я пытаюсь импортировать в SessionService, требует SessionService *. Пожалуйста, не пропустите необходимые данные с помощью '...'. – estus

ответ

0

content.service.ts

@Injectable() 
export class ContentService {...} 

Добавить это также как SessionService

+0

Извините, я не понимаю, что вы имеете в виду. – Lightheaded