ngResource / $资源未正确注入

时间:2015-11-16 16:15:53

标签: javascript angularjs dependency-injection ngresource

当前的任务是为API编写客户端。 $ resource模块未正确注入。我已将ngResource注入模块,然后将其传递给工厂声明。但是在控制器内部,如果我尝试console.log($ resource),我会收到以下错误:

TypeError: 'undefined' is not a function (evaluating '$resource('https://ourlink.nl',options)')

我确信问题正在app.js中发生/不发生,但如果您有其他想法,则会接受输入。你能帮我发现问题吗?

restClient.js

function restClient ($resource) {
  'use strict';
  var options = {};

  init();

  return {
    endpoint: self.endpoint,
    sendRequest: sendRequest
  };

  function init () {
    self.endpoint = 'https://ourlink.nl';
  }

  function sendRequest () {
    $resource('https://ourlink.nl', options);
    return true;
  }

}

module.exports = restClient;

app.js

var angular = require('angular');

// imports
require('angular-resource');

(function (angular, config, loaders, controllers, services, providers) {
      'use strict';

      angular
        .module('at.annabel', [
        'ngLocale',
        'ngRoute',
        'ngResource',
        'ngSanitize',
        'pascalprecht.translate',
        'ui.bootstrap'
      ])

    // constants
      .constant('translations', config.translations)

    // config
      .config([
        '$locationProvider',
        'config.BASE_PATH',
        providers.locationProvider
      ])

    // services
      .factory(
        'restClient',
        ['$resource', services.restClient]
      )

    // controllers
      .controller(
        'PlaceholderController',
        [controllers.PlaceholderController]
      )
    ;
}
        ))(
    angular,
    // config
    {
        menu: require('./config/menu').config
...
        }
    },
    // loaders
    {
        localeLoader: require('./config/locale-loader')
    },
    // controllers
    {
        PlaceholderController: require('./modules/placeholder/placeholder-controller')
    },
    // services
    {
        restClient: require('./services/restClient')
    },
    //providers
    {
        locationProvider: require('./config/location-provider')
    }
);

1 个答案:

答案 0 :(得分:0)

原来一直都在那里。由于应用程序不在浏览器中调用restClient.js,因此我只看到在测试中调用的模块。测试运行器没有为$ resource正确设置,并且需要通过测试将$ resource注入模块。感谢所有花时间阅读和调查的人。我抓住了app.js文件,因为它非常传统,但事实证明整个文件是合法的。