Просто с небольшим количеством трудностей передайте параметр (id) маршрутизатора в ngForm, а затем на эмитент событий. Вот как я получаю идентификатор - так как вы можете видеть, что первый console.log работает нормально, я могу получить идентификатор от маршрутизатора. Теперь я пытаюсь присвоить это мой singleOpenHome объекта (но получить неопределенную ошибку):Angular2 - передать параметру маршрутизатора как переменной в ngForm
@Input() singleOpenHome: OpenHomeModel;
ngOnInit() {
// Get the slug on it from the router
this.route.params.forEach((params: Params) => {
let id = params['propertyID'];
console.log('id on the child is:'+id);
//this.singleOpenHome.propertyID == id; Cannot read property 'propertyID' of undefined
});
}
Теперь я хотел передать это в форме:
<form class="my2" #form="ngForm" (ngSubmit)="handleSubmit(form.value, form.valid)" novalidate></form>
Вот мой emmitter событие:
@Output()
update: EventEmitter<OpenHomeModel> = new EventEmitter<OpenHomeModel>();
constructor(private route: ActivatedRoute) {}
handleSubmit(sinlgeOpenHome: OpenHomeModel, isValid: boolean) {
if (isValid) {
this.update.emit(sinlgeOpenHome);
}
}
Любая помощь оценили
Все ли коды, которые вы указали, принадлежат одному компоненту? Если да, просто назначьте параметр route для свойства класса - 'this.id = params ['propertyID'];' - тогда вы можете получить доступ к свойству из любого места в компоненте или его шаблоне. – AngularChef
Пробовал это: this.singleOpenHome.propertyID = params ['propertyID']; Но я не могу показать значение в шаблоне, как {{singleOpenHome.propertyID}} не будет работать. – rhysclay
Не понимаю. Почему бы вам не попробовать код, который я предложил? Все ли коды, которые вы показали, принадлежат одному и тому же компоненту? – AngularChef