2015-11-16 5 views
0

Текущая задача - написать клиент для API. Модуль $ resource не вводится правильно. Я ввел ngResource в модуль, а затем передал его в заводскую декларацию. Однако внутри контроллера, если я пытаюсь console.log ($ ресурс), я получаю следующее сообщение об ошибке:

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') 
    } 
); 

ответ

0

Оказалось, что там все время. Поскольку приложение не вызывает restClient.js в браузере, я видел только модуль, вызванный в тесте. Тест-бегун был неправильно настроен для $ resource, а $ resource необходимо было ввести в модуль с помощью теста. Спасибо всем, кто нашел время для чтения и расследования. Я попал в файл app.js, потому что он настолько нетрадиционен, но получается, что весь файл является законным.