【问题标题】:Restangular: Error: Unknown provider: RestangularProvider <- RestangularRestangular:错误:未知提供者:RestangularProvider <- Restangular
【发布时间】:2013-09-24 23:43:04
【问题描述】:

我正在尝试使用 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指南中描述的所有内容,但仍然不明白它不起作用的原因。

【问题讨论】:

  • 感觉你定义了angularApp两次
  • @apneadiving 我该如何检查?我搜索了项目,只看到一个创建应用程序的地方(我的意思是注入所有依赖项的地方)。
  • @apneadiving 你是对的,谢谢!
  • 酷,然后作为答案发布

标签: javascript ruby-on-rails ruby angularjs restangular


【解决方案1】:

根据我的评论,您定义了两次模块,第二次覆盖了您的 restangular 包含。

【讨论】:

    【解决方案2】:

    第二个angular.module('angularApp'... 覆盖第一个删除rectangular 依赖项。

    如果你需要引用 angularApp 模块,不要括号,像这样:

    var App = angular.module('angularApp')
    
    • 带括号 -> 模块创建
    • 不带括号 -> 模块 参考

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-20
      相关资源
      最近更新 更多