我真的很想找到最簡單的方式讓我的角應用使用模擬後端服務。
任何指針都會很棒,這是一個示例應用程序,展示瞭如何編寫一個簡單的應用程序來使用它來完成這項工作。 TNX!
我真的很想找到最簡單的方式讓我的角應用使用模擬後端服務。
任何指針都會很棒,這是一個示例應用程序,展示瞭如何編寫一個簡單的應用程序來使用它來完成這項工作。 TNX!
這裏是一個sample plunkr使用$ httpBackend作爲示例來回答this question以後端開發爲例。
主要的事情,我加入到plnkr來得到這個工作是:
angular-mocks.js
文件中的HTML。ngMockE2E
在angular.module需要app.js$httpBackend
到app.run 3線陣列,並在請求得到一個特定的URL添加代碼告訴模擬後端如何處理響應。這主要取自$httpBackend文檔。請注意,您可以爲任何想要實際打到後端的呼叫執行.passThrough()
(繞過模擬)。如果後端的某些部分已經在運行,這將特別有用。
下面是各種例子拉到一個基本的模板:
'use strict';
(function() {
if(!document.URL.match(/\?nobackend$/)){
// if not requested only add a blank stub to app dependency.
angular.module('ds.backendMock', []);
} else if (document.URL.match(/\?nobackend$/)) {
// if the query string is present add a module with a run definition to replace the back end.
angular.module('myMock', ['ngMockE2E'])
.run(function($httpBackend) {
// MOCK-RUNNER-CONFIGURATION-.
var DOMAIN = 'example.com',
$httpBackend.whenGET('http://'+DOMAIN+'/someexample')
.respond(
//MOCK-ERROR-STATUS-CODE
//401 //500 //404 //uncomment integer to mock status code and comment out mock data.
//MOCK-DATA-RESPONSE
{
'id' : '1',
'name' : 'MOCK',
'description' : 'mocking',
}
); //end mock.
// various passthroughs. these allow existing services to work, while some are mocked.
$httpBackend.whenGET('./some.html').passThrough();
// dont mock everything else, specify pass through to avoid error.
$httpBackend.whenGET(/^\w+.*/).passThrough();
$httpBackend.whenPOST(/^\w+.*/).passThrough();
});
}
})(angular);
「.passThrough()」將裝載模板也是有用的,否則‘$ httpBackend’干涉通常的模板加載機制。例如,提到 '$ httpBackend.whenGET(/ \。html $ /)。passThrough();' – 2015-07-21 13:31:00