Angular 7 данные подписки httpClient.post не доступны в угловом шаблоне - PullRequest
0 голосов
/ 30 ноября 2018

Tech: Angular 7

Я пытаюсь подписаться на httpClient.post и в подписаться Я присваиваю ответ моей локальной модели, и эта локальная модель используется вУгловой HTML-шаблон для отображения значений ответа сервера

В шаблоне HTML атрибуты модели пусты и не отображают назначенный ответ сервера после подписки .

Однако вКонсоль внутри подписки. Я могу напечатать значения модели

Мой фрагмент кода для контроллера:

constructor(private httpClient:HttpClient){
this.mymodel = new MyModel();
}

onSubmit() {
this.submitted = true;
// this.mymodel.success  = false; //this.mymodel is my model object
if (this.form.invalid) { //reactive form
  return;
} else {
 const result: model= Object.assign({}, this.form.value);
this.httpClient.post<MyModel>('http://myservice/url/api', result)
.subscribe(
  response => {  this.mymodel = response;
  console.log(this.mymodel.firstname) //this is printing the server response value 
  }
  );
}

}

Мой фрагмент кода для шаблона (HTML):

<body>
<p>{{mymodel.firstname}}</p>
<p>{{mymodel.lastname}}</p>

Примечание: тот же код отлично работает в Angular 5.

Что я здесь не так делаю, что отсутствует в моем коде.Любая помощь очень ценится.

Примечание. Отредактировано, ранее я не добавлял {{в шаблон.

1 Ответ

0 голосов
/ 30 ноября 2018

Измените его на:

<p>{{mymodel?.firstName}}</p> <!--{{mymodel?.firstname}}-->
<p>{{mymodel?.lastName}}</p>
  • Вы не привязываете значения к тому, что объявлено в вашей части TS
  • Проверьте свою модель, является ли она firstname или firstName, не может быть одновременно.
  • Отделите ваши сервисы от компонентов, создайте другие инъекционные классы (services = классы с @Injectable()) и внедрите их в свои компоненты WHERE , на которые вы должны подписатьсяих когда-то внутренние методы вызываются.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...