javascript - Angular 1.x ES6 服务 $http 未定义

标签 javascript angularjs ecmascript-6

我将 AngularJS 与 ES6 结合使用,当我从服务中调用 register 函数时,出现错误:

this.$http is undefined

我的服务:

export default class AccountService {
  /* @ngInject */
  contructor($http) {
    this.$http = $http;
  }

  register(account) {
    return this.$http.post('/api/accounts/register', account).then(result => result.data);
  }
}

AccountService.$inject = ['$http'];

注册我的服务:

import AccountService from './services/accounts.service';
angular.module('app', [...])
  /* ... */
  .service('accountService', AccountService)

在我的 Controller 中:

export class RegisterController {
  /* @ngInject */
  constructor(accountService) {
    this.accountService = accountService;
  }

  register(account) {
    this.accountService.register(account);
  }
}

我使用生成器:https://github.com/Swiip/generator-gulp-angular

最佳答案

您将constructor拼写为constructor。它永远不会被调用,因此不会分配 this.$http

关于javascript - Angular 1.x ES6 服务 $http 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34329804/

相关文章:

javascript - 无法理解这段 javascript 代码如何控制流程?

javascript - 如何将提示输入的值传递给函数?

带有单选按钮的 Javascript this.form.submit()

javascript - 即使服务器/客户端位于同一时区,日期输入提要也是错误的

javascript - 如何避免 $compile :tpload errors on 401 status code response

javascript - AngularJS - 根本不触发/获取 Http 请求

javascript - 在 es6 map 上调用 `Array.prototype.some()` 的更好方法

javascript - 在循环中等待嵌套的 Promise

javascript - Jquery 和 WAI ARIA

css - 悬停时更改 md-icon 和 md-button