我用“yo angular”创建了一个AngularJS应用程序,运行“grunt server --force”并进入'Allo,Allo'成功屏幕。
当我添加['ngResource']如下所示时,它似乎挂起......或者浏览器中至少没有显示任何内容。
我们尝试将$ resource添加为函数的参数.i.e。尝试实际使用资源,但没有运气。我没有在Web控制台中看到任何错误。我们验证了angular-resource.js列在components / angular-resources中。
这感觉就像一个愚蠢的新手错误,但它让我们陷入困境。
'use strict'; angular.module('a3App', ['ngResource']) .factory('myService', function () { var foo = 42; return { someMethod: function() { return foo; } }; });
答案 0 :(得分:6)
从Green&获得答案(或至少是理解) Seshadri的AngularJS书。
angular.module语句有两种工作模式:配置和运行。 'ngResource'语句适用于配置:
angular.module('a3App', ['ngResource']).config(function ($routeProvider) { $routeProvider .when('/', { templateUrl: 'views/main.html', controller: 'MainCtrl' }) .otherwise({ redirectTo: '/' }); });
作品
但是将相同的语句放在angular.module(...)。factory语句中并且它会失败/静默挂起(因为.factory是运行而不是配置语句):
angular.module('a3App', ['ngResource']).factory('myService', function($resource) { ...
这在AngularJS书的Kindle版本的位置6456(第7章中的“加载和依赖”)中进行了解释。事实之后它是有意义的(我猜所有事情都有)..但错误信息和/或更新的文档会很棒。
答案 1 :(得分:6)
布莱恩
我经历过同样的事情。每当我将['ngResource']
包含在工厂中时,我的AngJS应用程序就会悄然挂起。
我通过更改此代码修复了此问题:
angular.module('a3App', ['ngResource']).factory('myService', function($resource) {
...
进入这个:
angular.module('a3App').factory('myService', function($resource) {
...
我的应用程序在使用json rest api时仍能正常工作。
答案 2 :(得分:0)
定义模块及其依赖关系,以及在模块中创建新组件之间的区别。
angular.module('a3App',['ngResource','another.dependency'])。config()< - 将使用run(),config()等初始函数,但如果使用则会中断它来制作一个指令/控制器/服务/等。
angular.module('a3App')。factory('factoryName',function)< ---将用于创建组件,不再需要依赖项,它们已经用模块声明。