我正在尝试使用restangular
作为rails rest api的适配器,但我无法使其正常工作。我已经下载了最新版本并将文件放在vendor / assets / javascripts文件夹中。但是一旦我尝试加载应用程序,我会收到以下错误:
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)
这是我的application.js文件
//= 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
应用初始化如下:
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'
]);
还有一个控制器,它试图使用restangular而没有任何成功
angular.module('angularApp.controllers').controller('CourseListCtrl', [
'$scope', '$location', 'Restangular',
function($scope, $location, Restangular) {"use strict";
$scope.courses = Restangular.all('courses')
}]);
我做错了什么?我似乎完成了restangular指南中描述的所有内容,但仍然不明白为什么它不起作用。
答案 0 :(得分:8)
根据我的评论,您定义了两次模块,第二次覆盖了restangular
包含。
答案 1 :(得分:7)
第二个angular.module('angularApp'...
会覆盖第一个删除rectangular
依赖项的内容。
如果您需要引用angularApp模块,请不要使用括号,如下所示:
var App = angular.module('angularApp')