【问题标题】:Angular can't find created providerAngular 找不到创建的提供者
【发布时间】:2017-03-26 21:02:55
【问题描述】:

我有一个使用 webpack 和 babel 的应用程序,代码如下所示:

app.js

import angular from 'angular';
import 'jquery';
import components from './components/index';
import services from './services/index';
import './app.css';

angular.module('app', [components.name, services.name])
    .config((rpc) => {
        rpc.setup('rpc.scm');
    });

services/index.js

import angular from 'angular';
import rpc from './rpc';

var module = angular.module('services', []);

module.provider('rpc', rpc);

export default module;

services/rpc.js

import $ from 'jquery';

export default function() {
   var service = {};
   this.setup = function(uri) {
       // create service based on system.describe
   };
   this.$get = function() {
       return service;
   }
};

我得到了错误:

Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [$injector:unpr] Unknown provider: rpc

我没有从 webpack 中得到任何错误。

【问题讨论】:

  • 检查这部分:.config((rpc) => {rpc.setup('rpc.scm');});你从哪里得到“rpc”? 注意:您只能在 .config 中注入提供程序!
  • @PaoloMangia 这是module.provider('rpc', rpc);
  • 你不能那样做。它只接受:nameofproviderProvider。
  • @PaoloMangia Chaning rpc to rpcProvider in config 解决了这个问题,你可以添加这个作为答案。

标签: javascript angularjs ecmascript-6


【解决方案1】:

提供者应按如下方式注入:

angular.module('app', [components.name, services.name])
 .config((rpcProvider) => {
});

因为 .config 只接受 nameofprovider + Provider(驼峰式)。

更多信息在这里:AngularJS - Inject provider to module.config

【讨论】:

    猜你喜欢
    • 2019-01-12
    • 2017-10-07
    • 2021-06-09
    • 2021-01-06
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多