Не отвечающая функция в одностороннем связывании

Проблема может быть проста, но я не вижу, что не так прямо сейчас.

В рамках службы в моем проекте Angular есть следующая функция:

  public addCompany(){
    let newP:any  = {
      "name": "Chay elsarici",
      "password": "1234",
      "email": "[email protected]",
      "coupons": []
      }

     this.myHttpClient.post<any>("http://localhost:8080/CouponSystemJersey/couponsystem/admin/insertCompany", newP).subscribe(
       (res)=>{console.info("new company")},
       (err)=>{console.info(err)}
     ); 
  }

В html файле админки Componente есть следующая кнопка:

<input type = "button" onclick = "addNewCompany()" value = "Click here to insert company "/> 

А в файле ts компонента admin существующая следующая функция:

   public addNewCompany():void{
    console.info("someone click");
    this.myService.addCompany();
    };

Когда я нажимаю кнопку, я получаю следующую ошибку:

Uncaught ReferenceError: addNewCompany is not defined
    at HTMLInputElement.onclick (admin:13)

что мне не хватает?

Используйте директиву (click), а не собственное событие onclick.

The Head Rush 08.04.2019 15:29
Улучшение производительности загрузки с помощью 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 страниц, которые помогут...
0
1
36
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Эта ошибка указывает на то, что ваш Component не знает Service, который предоставляет метод addCompany().

Хорошо ли вы импортируете свои Service в Componentconstructor?

Вы также объявляете это в массиве ComponentModuleproviders?

Я думаю, вы знаете, как это сделать, но вот специальные темы в документации Angular:

Как сказал @Giovani Vercauteren, Angular является его собственная реализация из onclick с привязкой (click) = "...". Поэтому вы должны изменить его в своем коде.

Я сделал импорт службы, используя DI внутри конструктора. И в app.module есть объявление компонента администратора. Можете также загрузить этот код, если вы думаете, что у меня есть ошибка.

user10632362 08.04.2019 15:26
Ответ принят как подходящий

В вашем HTML вы используете

onclick = "addNewCompany()"

Вы должны использовать

(click) = "addNewCompany()"

Когда вы используете onclick, вы используете определение HTML по умолчанию, и это будет смотреть на глобальную область действия JavaScript. Если вы используете (click), функция будет работать в области контроллера вашего компонента.

Больше информации

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