将服务注入 Angular 1.5 组件

Posted

技术标签:

【中文标题】将服务注入 Angular 1.5 组件【英文标题】:Inject service into angular 1.5 component 【发布时间】:2018-05-20 02:48:24 【问题描述】:

我正在尝试从 angular1.5 组件初始化 test.service.js,但我真的不知道该怎么做。我已经将此结构用于角度组件:

var testComponent =  
    templateUrl: "app/components/test.component.html",
    controllerAs: "mvm",
    bindings:
        bindingInput: "=",
,
controller: function()
      var mvm = this;

    
;
angular.module('myApp').component('testComponent', testComponent);

【问题讨论】:

@31piy 是的 .... 【参考方案1】:

只需使用控制器注入它,如下所示:

...
,
controller: ['testService', function(testService)
  var mvm = this;
],
...

【讨论】:

@mcmwhfy 你能分享你的test.service.js 吗?【参考方案2】:

您可以像这样将服务直接注入控制器:

....
    controller: function(testService) 
      var mvm = this;
    
;

为防止testService 被缩小插件混淆,请让注入器服务也知道依赖关系。

var Controller = function(testService) 
   // Your controller code here
;

Controller.$inject = ['testService'];

var testComponent = 
  ...
  controller: Controller, // Assign controller in component
  ...
;

【讨论】:

我收到“未定义 testService”:| @mcmwhfy -- 您在test.service.js 中声明的服务名称是什么?

以上是关于将服务注入 Angular 1.5 组件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Angular-Fullstack 生成的 Angular 1.5 组件中注入依赖项

Angular 1.5 组件依赖注入

Angular 1.5 组件/需要 $log 的依赖注入

如何在 Angular 1.5 中注入组件路由器?

将Angular2服务注入组件基类

在 Angular 1.5 中将模块注入业力测试