Строка таблицы при щелчке не работает в Angular7

Я пытаюсь вызвать функцию всякий раз, когда я щелкаю строку в таблице HTML, но она не работает и не выдает никаких ошибок.

Я пробовал несколько вещей, и онлайн-код показывает, что то, как я это делаю, должно работать.

Мой код выглядит следующим образом:

HTML:

<h2>Userstories</h2>

<button (click) = "onNewStory()">New Story</button>

<table>
  <tr *ngFor = "let story of userstories" ng-click = "onUpdate(story)" [class.selected] = "story === selectedStory">
      <td>{{story.id}}</td>
      <td>{{story.name}}</td>
      <td><button ng-click = "onUpdate(story)">Click me!</button></td>
  </tr>
</table>

<app-userstory-detail [story] = "selectedStory"></app-userstory-detail>

И мой .ts выглядит так:

  selectedStory: UserStory;
  onNewStory() {
    var newStory = {id:this.userstories[this.userstories.length-1].id+1, name:"", description:"Deze is nieuw", status:"open", owner:USERS[1]};
    this.userstories.push(newStory);
    this.selectedStory = newStory;
  }

  onUpdate(userstory: UserStory): void {
    this.selectedStory = userstory;
    console.info(this.selectedStory);
  }

В настоящее время моя консоль не печатает журнал, когда я пытаюсь вызвать метод onUpdate. Ожидаемый результат - увидеть некоторый вывод в журналах, но я понятия не имею, почему он не запускает метод onUpdate.

Замените ng-click на (click)

Prashant Pimpale 19.04.2019 09:02
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
3
1
12 939
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

В angular 7 вы можете использовать (click), который похож на ng-click в Angular JS.

Пытаться:

<h2>Userstories</h2>

<button (click) = "onNewStory()">New Story</button>

<table>
  <tr *ngFor = "let story of userstories" (click) = "onUpdate(story)" [class.selected] = "story === selectedStory">
      <td>{{story.id}}</td>
      <td>{{story.name}}</td>
      <td><button (click) = "onUpdate(story)">Click me!</button></td>
  </tr>
</table>

<app-userstory-detail [story] = "selectedStory"></app-userstory-detail>

StackBlitz Demo

ng-click на самом деле для AngularJS (1.x)

Вы хотите использовать (click) для Angular.

ДОКУМЕНТАЦИЯ: https://angular.io/guide/ajs-quick-reference#ng-click

Событие запускается дважды. В <tr> и в <button>. Попробуй это:

<h2>Userstories</h2>

<button (click) = "onNewStory()">New Story</button>

<table>
  <tr *ngFor = "let story of userstories" [class.selected] = "story === selectedStory">
      <td>{{story.id}}</td>
      <td>{{story.name}}</td>
      <td><button (click) = "onUpdate(story)">Click me!</button></td>
  </tr>
</table>

<app-userstory-detail [story] = "selectedStory"></app-userstory-detail>

Другие вопросы по теме