Как мне использовать оператор if в Angular?

#angular

#angular

Вопрос:

Я хочу использовать оператор if только для консоли.в журнале есть «todo.title». Но когда я выписываю оператор if, под оператором if появляется красная строка.

Хорошо, позвольте мне объяснить эту проблему немного подробнее. Вот как выглядит веб-страница: введите описание изображения здесь

Все начальные элементы todo поступают изhttp://jsonplaceholder.typicode.com/todos. И я добавил новую строку под названием «test» через поле ввода. Когда я щелкнул по флажку для «удалять автоматически», он показал соответствующий console.log. Но когда я щелкнул по флажку для «Test», в консоли появилось это сообщение об ошибке.

Я пытаюсь изменить код так, чтобы он выводил консоль только для элементов, которые были получены с веб-сайта jsonplaceholder, и я пытаюсь сделать это, сказав «только если есть todo.title, тогда console.log, но если нет, то не выводите консоль.регистрируйте что угодно. Вот мой новый код:

 onToggle(todo) {
  // Toggle in UI
  todo.completed = !todo.completed;
  // Toggle on server
  this.todoService.toggleCompleted(todo).subscribe(    
    todo => { 
      if (todo.title) {
        console.log(todo);
      }        
    }); 
}
  

Комментарии:

1. Я полагаю, что это проблема с компоновкой, потому что ваш код не отформатирован.

2. Щелкните правой кнопкой мыши в текстовом редакторе и выберите Форматировать документ. Исчезает ли проблема?

3. Если вы наведете курсор мыши на код с красным подчеркиванием, появится текст, сообщающий вам, в чем проблема. В этом случае вам нужно обернуть свой if оператор в функцию.

4. Я отредактировал вопрос, чтобы придать больше смысла тому, о чем я говорю

5. 1. Веб-служба выдает какое-то исключение, поэтому перейдите на вкладку Сеть и посмотрите запрос и сведения об исключении в ответе. 2 Сохраните точку останова в серверной функции и посмотрите, попадает ли она, и отладьте

Ответ №1:

Это должно быть .subscribe( () => { <your code (if...)> } );

Комментарии:

1. Я отредактировал вопрос, чтобы придать больше смысла тому, о чем я говорю

Ответ №2:

Я думаю, что вам может понадобиться что-то в следующих строках, поскольку ваше утверждение if всегда будет истинным, если вы сравниваете одни и те же два объекта.

 onToggle(todo){
    //Toggle in UI
    todo.completed = !todo.completed;
    //Toggle on server
    this.todoService.toggleCompleted(todo).subscribe( ()=>
       if(todo.title){
           console.log(todo.title);
       }
    );  
}
  

Комментарии:

1. Обратите внимание, что todoType будет заменен типом, которым, как вы ожидаете, должен быть возвращаемый todo, а возвращаемый todo — это объект, возвращаемый из todoService.

2. Я отредактировал вопрос, чтобы придать больше смысла тому, о чем я говорю

3. @VamsiKrishna, без проблем, посмотрим, поможет ли вам что-нибудь вышесказанное. (обратите внимание, что это было просто введено в текстовое поле, поэтому могут возникнуть незначительные проблемы с синтаксисом, но, похоже, это должно быть хорошо).