Angularjs ES6 Angular1服务语法,如何创建和使用服务?

Angularjs ES6 Angular1服务语法,如何创建和使用服务?,angularjs,ecmascript-6,angular-services,Angularjs,Ecmascript 6,Angular Services,我知道有类似的问题,但不知何故,他们都有不同的代码,我似乎找不到什么东西来回答我的具体问题,我很抱歉 我跟随了几位Exmaple,我来到了这里: 这是我即将推出的地图服务(maps.service.js): 你可以看到它是一个简单的类,里面有一个方法。 在底部,基于几个示例,我对angular.service进行了调用,给了它一个名称,并使用了我创建的类。我认为这是错误的,但我不知道为什么。我也不知道这是否是将我需要的服务从angular注入其中的正确方法 然后,为了使用此服务,我有一个小型控制

我知道有类似的问题,但不知何故,他们都有不同的代码,我似乎找不到什么东西来回答我的具体问题,我很抱歉

我跟随了几位Exmaple,我来到了这里:

这是我即将推出的地图服务(maps.service.js):

你可以看到它是一个简单的类,里面有一个方法。 在底部,基于几个示例,我对angular.service进行了调用,给了它一个名称,并使用了我创建的类。我认为这是错误的,但我不知道为什么。我也不知道这是否是将我需要的服务从angular注入其中的正确方法

然后,为了使用此服务,我有一个小型控制器(catalog.controller.js):

问题是,无论我如何在服务中编写代码,当我尝试使用它时,总是会出现错误,当我检查mapService以查看其内部内容时,函数不存在。 我尝试导入它并将其作为参数传递给构造函数,我尝试了创建服务的不同方法,但我无法让它工作,每个人似乎都在使用不同的东西

这两个文件都位于名为“catalog”的文件夹内,在此文件夹外我有以下文件:

import angular from 'angular'
import catalog from './catalog/catalog'

let componentModule = angular.module('app.components', [
  catalog
])
.name

export default componentModule
这反过来又被另一个文件使用。整个结构都可以工作,因为我已经在使用控制器和视图了。我唯一的问题是如何创建和使用服务。 任何帮助都将不胜感激,因为我已经为此花了很多天了! 如果需要,我可以提供更多细节。
谢谢:)

根据DI,进行一些更改:

地图服务:

import angular from 'angular'
import angularConfig from '../angularConfig/angularConfig'

export default class Maps {
  constructor($http){}

  initializeMap (element, options){
    return new Promise(function(resolve){
      return resolve(new google.maps.Map(document.getElementById(element), options))
    })
  }
}

Maps.$inject = ['$http']

angular.module(Maps, [])
  .service('maps.service', Maps)
目录控制器

class catalogController {
  constructor($scope, mapsService) {}

  $onInit () {
    // map init

    this.mapService.initializeMap(param1, param2)
      .then(() => {
        console.log('it worked!!')
      })
  }
}

catalogController.$inject = ['$scope', 'mapsService']

export default catalogController;

PS:这里有一个很好的例子:

在控制器构造函数中是
this.mapService=mapService
,在其他方法中是
this.mapService
(不仅仅是
mapService
,它是未定义的)。问题是什么真的不清楚。ES6仍然是JS,类是构造函数的语法糖。这不是什么黑魔法。如果类有问题,请先尝试使用构造函数实现它。”以一个错误结束-什么错误?我们应该猜猜吗?谢谢,我做了这些更改,并得到一个错误:未捕获错误:[$injector:modulerr]未能实例化模块应用,原因是:错误:[$injector:modulerr]未能实例化模块应用。常见原因是:错误:[$injector:modulerr]未能实例化模块函数映射()由于:TypeError:无法将类作为函数调用我将angular.module('app.common',[]).service('mapsService',Maps)添加到映射服务,并将其映射到控制器catalogController。$inject=['$scope','mapsService']我有一个文件,在其中导入所有控制器,当我在那里添加服务时,我得到它,如果我得到此错误,或者找不到服务,我搜索了错误,但我在这里迷路了,我认为整个问题是依赖注入,对吗?
import angular from 'angular'
import angularConfig from '../angularConfig/angularConfig'

export default class Maps {
  constructor($http){}

  initializeMap (element, options){
    return new Promise(function(resolve){
      return resolve(new google.maps.Map(document.getElementById(element), options))
    })
  }
}

Maps.$inject = ['$http']

angular.module(Maps, [])
  .service('maps.service', Maps)
class catalogController {
  constructor($scope, mapsService) {}

  $onInit () {
    // map init

    this.mapService.initializeMap(param1, param2)
      .then(() => {
        console.log('it worked!!')
      })
  }
}

catalogController.$inject = ['$scope', 'mapsService']

export default catalogController;