2016-04-02 4 views
0

Если мое понимание машинописного текста верное, то для части кода ниже мы сообщаем классу ContactusPage, что его конструктор получит два аргумента, один из которых будет иметь тип NavController и другой тип FormBuilder.Сортировка зависимой инъекции в Angular2

import {FormBuilder, Validators} from 'angular2/common'; 
@Page({ 
    templateUrl: '...' 
}) 
export class ContactusPage { 
    constructor(nav: NavController, fb: FormBuilder) { 
    this.contactForm = fb.group({ 
     name: ['',], 
    }); 
    this.nav = nav; 
    } 
} 

Это часть ионного кода. При этом ионная страница загружена, нигде не мы создаем класс ContactUsPage с чем-то вроде

new ContactUsPage(navControllerInstance, FormBuilderInstance) 

Мой путаницы в том, что мы информируем этот класс ожидать аргументы этих типов, нигде не я видеть, что они прошли. как так ?

+1

Поскольку он угловой, который вызывает конструктор для вас и вводит две необходимые ему зависимости. Это принцип DI. –

+0

@ JBNizet Я получаю это. Для того чтобы DI функционировал, должны быть экземпляры доступны и зарегистрированы с угловой каркасом. Я не вижу, что это происходит где-то – runtimeZero

+0

@SMV вы пропустили импорт 'NavController', добавьте эту строку в свой код' import {NavController} из './path/NavController'; ' –

ответ

-1

Вы регистрируете поставщиков в декораторах (Я не пользуюсь ионикой, и я не знаю, какие там декораторы существуют, но я думаю, что помню, как они встречались в вопросах). Это информация для DI, как создавать экземпляры по запросу.

@App({ 
    ... 
    providers: [NavController] 
)} 
Смежные вопросы