Angular 2:我在哪里指定其他方法?

时间:2016-06-10 13:41:57

标签: angular angular-fullstack

我正在努力学习Angular 2的开发,所以请原谅基本问题。我使用Angular-full-stack(https://github.com/angular-fullstack/generator-angular-fullstack)生成一个骨架应用程序。除其他外,它在client / app / main中预生成5个文件: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> 
...

单击该按钮会出现以下控制台错误: &#34;未捕获的ReferenceError:未定义deleteThing&#34;

如何或以何种方式添加他/她自己的方法以便可以访问它们?那么,什么应该进入main.js?

1 个答案:

答案 0 :(得分:2)

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

参考: https://angular.io/guide/cheatsheet