AngularJS $httpBackend - ошибка "Больше ожиданий от запроса"

Кажется, это является рабочим решением, которое показывает, как работать с $httpBacked http://jsfiddle.net/EgMpe/8/

Но для моего случая:

<сильные > маршруты

app.config(['$routeProvider', function($routeProvider) { $routeProvider.

    when('/',  {templateUrl: 'partials/user-list.html'}).

...

поддельный сервис:

app.run(function($httpBackend) {

        var users = [{"id":1,"name":"bob","email":"[email protected]"}, {"id":2,"name":"bob2","email":"[email protected]"}]

        $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:

Ошибка: Неожиданный запрос: GET partials/user-list.html Отсутствие запроса ожидаемый     в $httpBackend.../mysite/public/ angular/libs/angular -1.2.0/angular -mocks.js: 1060: 9)

Question1: Предоставляет ли httpBackend выполнение каких-либо других http запросов?

Я попытался использовать метод passThrough, чтобы http попал в реальную сторону сервера:

$httpBackend.whenGET(/^\/mysite\//).passThrough();

Но это не помогает.

Ответы

Ответ 1

А.. Извините, я просто ошибся с моим RegEx:

если этот тип $httpBackend.whenGET(/partials/).passThrough();

Затем все начинают работать.

Итак, я получил свой урок: не забудьте поставить: passThrough(); с правильным RegEx.

Ответ 2

Используя $httpBackend, вы должны заранее указать весь запрос, который вы собираетесь выполнить. Возможно, этот короткий отрывок из Mastering Web Application Development with AngularJS прояснит, почему:

Метод verifyNoOutstandingExpectation проверяет, что все ожидаемые (были вызваны вызовы $http, а реакции сброшены), тогда как verifyNoOutstandingRequest позволяет убедиться, что проверенный код не запускается любые непредвиденные вызовы XHR. Используя эти два метода, мы можем убедиться, что код под тестом вызывает все ожидаемые методы и только ожидаемые.