2016-12-11 4 views
1

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

от ввода адреса компонента (поиск-map.ts):

@Component({ 
    selector: 'search-map', 
    templateUrl: 'search-map.html' 
}) 

@NgModule({ 
    schemas: [ CUSTOM_ELEMENTS_SCHEMA ] 
}) 

export class SearchMap {   
    public searchMapForm = this.formBuilder.group({ 
     country: ["DE"], 
     postcode: ["", this.searchCont], 
     city: [""], 
    }); 
(...) 

вставленные в HTML базовой формы (signup.html):

(...) 
    <ion-item> 
     <ion-label floating>Password</ion-label> 
     <ion-input type="password" formControlName="password"></ion-input> 
    </ion-item> 

    <search-map></search-map> 
(...) 

От базовой формы (signup.ts)

ionViewWillLoad() { 
    this.signup = this.formBuilder.group({ 
     name: [this.name, Validators.required], 
     fullname: [this.fullname, Validators.compose([Validators.required, Validators.pattern('^[\\w-äöüßÄÖÜ]+(\\s[\\w-äöüßÄÖÜ]+)+$')])], 
     email: [this.email, Validators.compose([Validators.required, Validators.pattern('^(([^<>()\\[\\]\\\\.,;:\\[email protected]"]+(\\.[^<>()\\[\\]\\\\.,;:\\[email protected]"]+)*)|(".+"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$')])], 
     password: ['', Validators.compose([Validators.required, Validators.minLength(8)])], 
     passwordRepeat: ['', this.passwordCompare], 
     address: [this.address, Validators.required], 
    }); 
} 

Редактировать и менять события отлично работают на обоих.

Как я могу прочитать поля ввода страны и почтового индекса из файла signup.ts (класс signupPage)?

ответ

1

В вашем HTML, где вы установили поиск-карту, сделайте следующее:

<search-map #searchMap></search-map> 

В классе SignupPage, объявить searchMap, как

@ViewChild(SearchMap) 
searchMap:SearchMap; 

таким образом, вы можете получить доступ к компоненту ребенка в родительском и все общественные свойства ребенка. (Возможно, вам придется сделать поискMapForm общедоступным классом searchmap)

Check here for more

+0

#searchMap в HTML не представляется необходимым. – Michael

+0

- это идентификатор тега поисковой карты, и этот идентификатор доступен в компоненте с viewChild. В противном случае он не сможет найти тег. –

+0

sry .. ya это может быть не обязательно .. нормально использовать его, если вам нужно ссылаться на компонент в самом html. –

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