首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AngularJS语法注册ES6服务

使用AngularJS语法注册ES6服务
EN

Stack Overflow用户
提问于 2015-10-15 17:56:30
回答 1查看 1.1K关注 0票数 1

我正在尝试使用ES6导入/导出语法创建和注册一个新服务,但我不确定正确的格式是什么。我让它工作的唯一方法是:如果我在注入index.module.js时使用引号,它就会中断。我应该在服务文件中创建新的服务.帐户-服务模块吗?为什么只有当我不使用引号时才正确地注入服务?谢谢!

account.service.js:

代码语言:javascript
复制
class AccountService {

  exportTrack(response, account) {
      return {
          method: 'PUT',
          url: 'https://api.spotify.com/v1/me/tracks?ids=' +response.data.tracks.items[0].id+ '&type=track&market=US',
          headers: {
              'Authorization': 'Bearer ' + account.auth
          }
      };
  }
}

export default angular.module('services.account-service', [])
  .service('AccountService', AccountService)
  .name;

index.module.js:

代码语言:javascript
复制
import { config } from './index.config';
import { routerConfig } from './index.route';
import { runBlock } from './index.run';

import HeaderController from '../app/components/header/header.controller';
import SidenavController from '../app/components/sidenav/sidenav.controller';
import LoginController from './login/login.controller';
import AccountController from './account/account.controller';
import AccountService from './account/accountService-service';
import TrackController from './track/track.controller';
import PlaylistController from './playlist/playlist.controller';
import { Velociraptor } from '../app/components/services/velociraptor-service'; // Component Loopback service (lb-ng)

angular.module('velociraptor-ui',[
    'ngAnimate',
    'ngCookies',
    'ngTouch',
    'ngSanitize',
    'ngMessages',
    'ngAria',
    'ngResource',
    'ui.router',
    'ngMaterial',
    'Velociraptor',
    'toastr',
    AccountService
  ])
  .constant('moment', moment)
  .config(config)
  .config(routerConfig)
  .run(runBlock)
  .controller('HeaderController', HeaderController)
  .controller('SidenavController', SidenavController)
  .controller('LoginController', LoginController)
  .controller('AccountController', AccountController)
  .controller('TrackController', TrackController)
  .controller('PlaylistController', PlaylistController);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-15 18:36:09

我的猜测是,“在我的index.module.js中插入AccountService时使用引号”意味着您要做这样的事情:

代码语言:javascript
复制
angular.module('velociraptor-ui',[
    ...
    'AccountService'
  ])

这样就行不通了。导入的角模块的名称仍然是services.account-service (不管如何调用ES6模块),AccountService变量等于'services.account-service‘字符串。

我认为导出 property是模块化角度工作流的一个坚实的模式,只需注意正在导出/导入的是什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33155345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档