javascript - 如何在普通 ES5 (Javascript) 中向 Angular 组件注入(inject)自定义服务?

标签 javascript angular ecmascript-5 angular2-services

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

最佳答案

您可以非常简单地做到这一点。只需创建一个类并通过 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 (您可以在评论中找到它的一些用法示例)

关于javascript - 如何在普通 ES5 (Javascript) 中向 Angular 组件注入(inject)自定义服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34532138/

相关文章:

Javascript,如何匹配并获取包含在两个数组中的相似对象?

javascript - 如何在流中定义和导入类类型?

javascript - chalice : call to public action redirects to login page

angular - modal.dismiss() 上的 Ionic 4 leaveAnimation

javascript - 如何在 IE11 上加载也适用于常青浏览器的 Polymer 元素?

c# - 有没有办法保护我的幻灯片图像

angular - ngx-translate 与 i18n 的区别

angular - 如何在 firestore 中保存日期值

具有日期升序的Javascript数组过滤器并删除重复项

javascript - 为什么在严格模式下不允许八进制数字文字(解决方法是什么?)