【问题标题】:How to inject custom service to angular component in plain ES5 (Javascript)?如何在纯 ES5(Javascript)中向 Angular 组件注入自定义服务?
【发布时间】:2015-12-30 15:15:43
【问题描述】:

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

【问题讨论】:

  • 我在这个问题中指的是当前 beta 版本的 angular2。

标签: javascript angular ecmascript-5 angular2-services


【解决方案1】:

你可以做的超级简单。只需创建一个类并通过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();
        }]
      });

或者通过引导

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

这是example,您可以查看一下。

参考

  • Class(您可以在 cmets 中找到一些使用示例)

【讨论】:

  • 谢谢。它就是这样工作的。它对我有用的原因是我在创建它之前试图引用Service。所以js文件的加载顺序对于这种方法很重要。
  • @SergeyP.akaazure 如果它回答了你的问题,你能接受吗?
  • 如果我需要使用两个服务怎么办?我如何在构造函数中指定它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-27
  • 1970-01-01
  • 2016-07-21
  • 2018-10-27
  • 2016-09-02
  • 2018-07-30
相关资源
最近更新 更多