Получение [Object Object] в угловом приложении

Получение [Object Object] в угловой форме, а также раскрывающийся список (выбор) не установлен на индекс 0 по умолчанию. В то время как в случае редактирования все работает нормально. Нужно ли мне инициализировать свойства модели для этой страницы создания?

введите здесь описание изображения

Изменить: ngModelChange не вызывает функцию doNameChange.

Компонент:

  export class User {
  Id: number;
  Name: string;
  Gender: string;    
}
this.user = {
      Id: 0,
      Name: '',
      Gender: ''
}
doNameChange(event) {
    debugger;
    console.log(event); // logs model value
  }

HTML:

 <form (ngSubmit)="save(f.value, f.valid)" #f="ngForm" novalidate materialize>      
      <input id="Name" (ngModelChange)="doNameChange($event)" name="Name" #Name="ngModel" type="text" class="validate form-control" required minlength="3" [(ngModel)]="user.Name">
      <select id="Gender"  name="Gender" #Gender="ngModel" class="validate form-control" [(ngModel)]="user.Gender" required>
          <option value="">-- Select Gender --</option>
          <option value="Male">Male</option>
          <option value="Female">Female</option>
        </select>
    </form>

person Sunil Kumar    schedule 06.06.2018    source источник
comment
Удалите ngmodel при использовании реактивных форм`   -  person Vega    schedule 06.06.2018
comment
@Vega, я хочу посмотреть, как меняется объект .. что тогда делать?   -  person Sunil Kumar    schedule 06.06.2018
comment
Вы просматриваете документацию для обоих и выбираете один. И, пожалуйста, уточните свою проблему, потому что, кроме использования форм, управляемых шаблонами, и реактивных форм, я не вижу никаких проблем в вашем коде.   -  person    schedule 06.06.2018
comment
хорошо, @trichetriche позаботится об этом..   -  person Sunil Kumar    schedule 06.06.2018


Ответы (1)


При использовании реактивных форм не используйте ngModel для форм на основе шаблонов. Если вам нужно прослушать изменения:

ngÒnInit(){
   this.employeeForm = this._fb.group({
      EmployeeId: 0,
      Name: ['', [Validators.required, Validators.minLength(3)]],
      Gender: ['', [Validators.required]]  //dropdown
   });
   this.onChanges();
}
...

onChanges(): void {
  this.myForm.valueChanges.subscribe(val => {
        console.log(val);
  });
}

 //or:
onChanges(): void {
  this.myForm.get('name').valueChanges.subscribe(val => {
    console.log(val);
  });
}
person Vega    schedule 06.06.2018
comment
Пожалуйста, также проверьте эту ссылку stackoverflow.com/questions/50699435/ - person Sunil Kumar; 06.06.2018
comment
не работает @Vega, я изменил вопрос и добавил (в часть «Редактировать») то, что я изменил в соответствии с вашим ответом .. - person Sunil Kumar; 06.06.2018
comment
В своем ответе я предложил удалить ngModel. Что касается кода, который вы вставили, он должен работать. Что не работает? Это не соответствует изменениям? Не могли бы вы сделать демонстрацию, чтобы я мог увидеть остальную часть вашего класса? - person Vega; 06.06.2018
comment
Что не работает? Что вы ожидаете? Кажется, это работает для меня: stackblitz.com/edit/angular-rktfh8 - person Vega; 06.06.2018
comment
не печатает значение на консоли, не знаю почему.. Требуется ли какое-либо объявление или какой-либо импорт.. этот приветственный компонент требуется в моем приложении? - person Sunil Kumar; 06.06.2018
comment
m не работает в app.component, возможно, что-то требуется для импорта в другой компонент. - person Sunil Kumar; 06.06.2018
comment
Поскольку я не вижу весь ваш код или, по крайней мере, минимальный воспроизводимый пример, я не могу понять, что происходит . Сравните свой код с этим: stackblitz.com/edit/angular-rktfh8. Или разветвите его и обновите, чтобы показать, что происходит. - person Vega; 06.06.2018
comment
он работает, вчера не работал, даже я очистил кеш браузера временных файлов и перестроил код. Сегодня я начал свой проект, он уже работает.. Спасибо, @Vega.. - person Sunil Kumar; 07.06.2018