如何在纯ES5(Javascript)中为角度组件注入自定义服务?

时间:2015-12-30 15:15:44

标签: javascript angular ecmascript-5 angular2-services

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

1 个答案:

答案 0 :(得分:12)

你可以做到超级简单。只需创建一个类,然后通过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(您可以在评论中找到一些使用示例)