相关疑难解决方法(0)

如何将角度$资源工厂(非服务)转换为ES6

我想通过将现有代码转换为ES6(如本视频中所推荐的)开始准备Angular 2 .

但是,我立刻感到难过,或者可能不确定如何继续.在视频中,它们显示了服务的转换.在我的代码中,我正在尝试转换工厂,这在尝试转换为ES6时类似但实际上完全不同.该服务很容易遵循类实例化方法,但工厂需要返回注入的对象.

我的代码开头是这样的:

melange.factory('SomeService', ['$resource', function ($resource) {
  var someResource = $resource('/api/endpoint');

  someResource.customQuery = function() {
    // ... do some custom stuff
  };

  return someResource;
}]);
Run Code Online (Sandbox Code Playgroud)

我的第一次失败尝试 - 所以我立即开始转换到ES6并想出了这个:

// notice I changed this to service instead of factory
melange.service('SomeService', ['$resource', SomeService]);

class SomeService {
  constructor ($resource) {
    var someResource = $resource('/api/endpoint');

    someResource.customQuery = function() {
      // ... do some custom stuff
    };

    return someResource;
  }
}
Run Code Online (Sandbox Code Playgroud)

但那不对......构造函数正在返回一个资源.


也许成功尝试 - 所以它真的是资源(或者真的是一个Route对象),这就是我想要'class-ify'的东西.但由于Resource对象已经有一个特定的接口接口,我需要我的类扩展基础Resource对象.但这是通过调用$ resource工厂函数动态生成的.所以我想出了这个可能正确的代码:

melange.service('SomeService', ['$resource', …
Run Code Online (Sandbox Code Playgroud)

angularjs ecmascript-6

10
推荐指数
1
解决办法
4586
查看次数

标签 统计

angularjs ×1

ecmascript-6 ×1