在AngularJS中包含模块的正确方法

时间:2013-10-01 00:19:27

标签: angularjs dependency-injection restangular

我正在学习Angular,我试图以这种方式包含Restangular:

var app = angular.module('myapp',['restangular']);
app.controller('UsersController', ['$scope', function ($scope, Restangular) {
   ...

然后我就像这样使用Restangular:

var data = Restangular.all('someurl');

这里我收到一个错误:Restangular未定义。根据文档,这应该很简单:

// Add Restangular as a dependency to your app
angular.module('your-app', ['restangular']);

// Inject Restangular into your controller
angular.module('your-app').controller('MainCtrl', function($scope, Restangular) {
  // ...
});

但是我无法让它发挥作用。是什么给了什么?

2 个答案:

答案 0 :(得分:12)

您正在为控制器使用括号表示法,但是您忘记将Restangular添加到依赖项列表中:

['$scope', 'Restangular', function ($scope, Restangular) {...}]

This article提供了有关Angular和minification的更多信息。搜索“关于缩小的注释”。

答案 1 :(得分:-3)

看起来没错,只需确保已将Restangular的导入添加到您的html文件

<script type="text/javascript" src="http://cdn.jsdelivr.net/restangular/1.1.3/restangular.js"></script>

他们还提到它需要lodash或underscore.js所以也许确保你也加载那些