Angular 2: Где я могу указать дополнительные методы?

Я усердно работаю над изучением разработки Angular 2, так что извините за основной вопрос. Я использовал Angular-full-stack (https://github.com/angular-fullstack/generator-angular-fullstack), чтобы создать каркас приложения. Среди прочего он предварительно генерирует 5 файлов в client/app/main: main.controller.js, main.controller.spec.js, main.html, main.js, main.scss

main.controller.js

'use strict';

(function() {

  class MainController {

    constructor($http) {
      this.$http = $http;
      this.awesomeThings = [];
    }

    $onInit() {
      this.$http.get('/api/things')
        .then(response => {
          this.awesomeThings = response.data;
        });
    }

    addThing() {
      if (this.newThing) {
        this.$http.post('/api/things', {
          name: this.newThing
        });
        this.newThing = '';
      }
    }

    deleteThing(thing) {
      this.$http.delete('/api/things/' + thing._id);
    }
  }

  angular.module('orbitApp')
    .component('main', {
      templateUrl: 'app/main/main.html',
      controller: MainController
    });
})();

Есть конструктор и некоторые методы уже предопределены. Однако попытка получить доступ к этим или любым другим файлам, которые я добавляю из main.html, не работает:

main.html

...
<button onclick="deleteThing()">Test: deletething</button> 
...

При нажатии на кнопку появляется следующая ошибка консоли: "Uncaught ReferenceError: deleteThing не определен"

Как или где можно добавить свои собственные методы таким образом, чтобы к ним можно было получить доступ? Если на то пошло, что должно войти в main.js?


person Koen De Couck    schedule 10.06.2016    source источник


Ответы (1)


<button (click)="deleteThing()">Test: deletething</button> 

Ссылка: https://angular.io/guide/cheatsheet

person zpul    schedule 10.06.2016
comment
Это заставило ошибку исчезнуть, но нажатие кнопки ничего не делает. Думаю, должно быть что-то еще. - person Koen De Couck; 10.06.2016