如何在纯 ES5 (Javascript) 中向 angular 组件注入自定义服务?

How to inject custom service to angular component in plain ES5 (Javascript)?

我有一个可以工作的 angular2 Component。 我为某些服务实现了 class(如果重要的话使用 ng.core.Class)。 将我的服务注入 Component 的最少步骤是什么?我应该在 bootstrap 函数中包含我的服务吗?我应该使用 ng.core.Inject 还是 ng.core.Injectable? 中的任何一个?到目前为止,我所有的实验都失败了。

你可以做到超级简单。只需创建一个 class 并通过 providers 属性 或 bootstrap

传递它

例如

 // Alternative 1
 var Service = ng.core.Class({
  constructor : function() {},
  someFunction : function() {
    console.log('Some function');
  }
})

// Alternative 2
var Service = function() {}
Service.prototype.someFunction = function() {
  console.log('Some function');
}

然后传给组件

var Component = ng.core.
      Component({
        selector: 'cmp',
        template : '',
        providers : [Service]
      }).
      Class({
        constructor: [Service, function(svc) {
          svc.someFunction();
        }]
      });

或通过bootstrap

ng.platform.browser.bootstrap(Component, [Service]);

这是一个example,你可以看看。

参考

  • Class(您可以在评论中找到它的一些用法示例)