Restangular: Error: Unknown provider: RestangularProvider <- Restangular

妖精的绣舞 提交于 2019-12-23 12:56:20

问题


I'm trying to use restangular as an adapter for rails rest api, but i can't make it work properly. I've downloaded the latest version and put the file in vendor/assets/javascripts folder. But once i try to load the app i get the following error:

Error: Unknown provider: RestangularProvider <- Restangular
    at Error (<anonymous>)
    at http://0.0.0.0:3000/assets/angular.js?body=1:2706:19
    at Object.getService [as get] (http://0.0.0.0:3000/assets/angular.js?body=1:2832:39)
    at http://0.0.0.0:3000/assets/angular.js?body=1:2711:45
    at getService (http://0.0.0.0:3000/assets/angular.js?body=1:2832:39)
    at invoke (http://0.0.0.0:3000/assets/angular.js?body=1:2850:13)
    at Object.instantiate (http://0.0.0.0:3000/assets/angular.js?body=1:2882:23)
    at http://0.0.0.0:3000/assets/angular.js?body=1:4771:24
    at http://0.0.0.0:3000/assets/angular.js?body=1:4350:17
    at forEach (http://0.0.0.0:3000/assets/angular.js?body=1:161:20) 

Here is my application.js file

//= require jquery
//= require bootstrap
//= require suggest.min
//= require angular
//= require underscore
//= require restangular
//= require angular-strap.min
//= require angular-cookies
//= require angular-resource
//= require angular/index

The app is initialized as follows:

angular.module('angularApp', [
  'ngCookies', 
  'restangular'
]);
angular.module('angularApp.services', [
  'ngResource',
  'sessionService',
  'courseService'
]);
angular.module('angularApp.resources', [
  'ngResource'
]);
angular.module('angularApp.directives', []);
angular.module('angularApp.filters', []);
angular.module('angularApp.controllers', []);

var App = angular.module('angularApp', [
  'angularApp.resources',
  'angularApp.services',
  'angularApp.directives',
  'angularApp.filters',
  'angularApp.controllers',
  '$strap.directives'
  ]);

There is also a controller which tempts to use restangular without any success

angular.module('angularApp.controllers').controller('CourseListCtrl', [
  '$scope', '$location', 'Restangular', 
  function($scope, $location, Restangular) {"use strict";
    $scope.courses = Restangular.all('courses')
}]);

What am i doing wrong? It seems i've done everything described in the restangular guide, but still don't understand the reason why it's not working.


回答1:


As per my comment, you're defining the module twice, the second time it overrides your restangular inclusion.




回答2:


The second angular.module('angularApp'... overwrites the first one erasing the rectangular dependency.

If you need to reference the angularApp module, do it without brackets, like this:

var App = angular.module('angularApp')
  • With brackets -> module creation
  • Without brackets -> module reference


来源:https://stackoverflow.com/questions/18902309/restangular-error-unknown-provider-restangularprovider-restangular

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!