没有'new'就不能调用类构造函数BaseService

时间:2017-10-27 15:07:26

标签: javascript angularjs ecmascript-6

我正在尝试将角度js服务用作ES6类。但是得到错误。

如果没有'new',则无法调用类构造函数BaseService。

这是服务代码。

"use babel";

(function() {
  'use strict';

  class BaseService {
    constructor() {
      this.data = {
        items: []
      };
    }

    loadData() {
      this.data.items = ['one', 'two', 'three'];
    }
  }

  angular.module('app').service('BaseService',  BaseService);
}());

这是我正在尝试的链接。 https://embed.plnkr.co/D9MEJZe4pF6oztf7DP31/

2 个答案:

答案 0 :(得分:0)

// your Base Service class file
export default class BaseService {
    constructor() {
        this.data = {
            items: []
        };
    }
}

// your Angular service file
import BaseService from './base.service.js'; // relative path to BaseService file

export default class MyService extends BaseService {
    constructor() {
        super();
    }
}

// module definition file
import MyService from './my.service.js'; // relative path to MyService file
module.exports = angular.module('myMod',[])
.service('MyService', MyService);

答案 1 :(得分:0)

这是您正在使用的AngularJS版本(1.5.0-rc.0)中的问题。它无法正确构造一个类。升级到1.5.0或更高版本,错误将消失。