$httpBackend – Stepan Suvorov Blog https://stepansuvorov.com/blog Release 2.0 Wed, 29 Jan 2014 15:12:09 +0000 en-US hourly 1 https://wordpress.org/?v=6.3.1 AngularJS: подружить $httpBackend моки с шаблонами https://stepansuvorov.com/blog/2014/01/angularjs-%d0%bf%d0%be%d0%b4%d1%80%d1%83%d0%b6%d0%b8%d1%82%d1%8c-httpbackend-%d0%bc%d0%be%d0%ba%d0%b8-%d1%81-%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc%d0%b8/ https://stepansuvorov.com/blog/2014/01/angularjs-%d0%bf%d0%be%d0%b4%d1%80%d1%83%d0%b6%d0%b8%d1%82%d1%8c-httpbackend-%d0%bc%d0%be%d0%ba%d0%b8-%d1%81-%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc%d0%b8/#respond Wed, 29 Jan 2014 15:12:09 +0000 http://stepansuvorov.com/blog/?p=1413 Continue reading ]]> Если необходимо использовать одновременно mock-сервис $httpBackend(из ngMock или ngMockE2E) и загрузку шаблонов из файлов(которая идет через незамоканы $httpBackend сервис), получаем конфликт с выдачей следующей ошибки:

Error: Unexpected request: GET views/main.html

Которая говорит о том, что наш мок не знает ничего о шаблонах.

Возможны 2 варианта решения:

  1. отказаться вообще от загрузки html файлов (гуглить в тему кеширования шаблонов и html2js) – это позволит не использовать $httpBackend сервис вообще
  2. сделать заглушку на заглушку: дать инструкции мок сервису пропускать запросы на шаблоны. Делается это так: $httpBackend.whenGET(/^tepmlates\//).passThrough();

Полный код второго варианта:

app.run(function ($httpBackend) {
        $httpBackend.whenGET(/^tepmlates\//).passThrough();
});

 

Полезная статья в тему и пример, также обсуждение на SO.

 

]]>
https://stepansuvorov.com/blog/2014/01/angularjs-%d0%bf%d0%be%d0%b4%d1%80%d1%83%d0%b6%d0%b8%d1%82%d1%8c-httpbackend-%d0%bc%d0%be%d0%ba%d0%b8-%d1%81-%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc%d0%b8/feed/ 0