看来这是有效的解决方案,显示了如何使用$httpBacked http://jsfiddle.net/EgMpe/8/
$httpBacked
但就我而言:
路线
app.config(['$routeProvider', function($routeProvider) { $routeProvider. when('/', {templateUrl: 'partials/user-list.html'}).
…
伪造的服务:
app.run(function($httpBackend) { var users = [{"id":1,"name":"bob","email":"bob@bobs.com"}, {"id":2,"name":"bob2","email":"bob2@bobs.com"}] $httpBackend.whenGET('/rest/users').respond(function(method,url,data) { console.log("Getting users"); return [200, users, {}]; }); });
..
真实服务:
services.factory('Users', function($resource){ return $resource('/rest/users', {}, { get: {method: 'GET', isArray:true} }); });
转到将我重定向到页面的“ /”路由时出现 错误user-list.html:
user-list.html
错误:意外请求:GETpartials / user-list.html在$ httpBackend … / mysite / public / angular / libs / angular-1.2.0 / angular-mocks.js:1060:9上没有更多请求了
问题1: 是否httpBackend阻止其他http要求?
httpBackend
http
我试图使用 passThrough 方法让http到达真实服务器端:
$httpBackend.whenGET(/^\/mysite\//).passThrough();
但这无济于事。
啊..抱歉,我的RegEx错了:
如果输入 $httpBackend.whenGET(/partials/).passThrough();
$httpBackend.whenGET(/partials/).passThrough();
然后所有人开始工作。
因此,我得到了教训:不要忘了说: passThrough(); 与正确的 RegEx 。