我发现这个令人难以置信的令人沮丧的角度嘲笑阻止所有请求BY DEFAULT,并迫使我“通过”我想要的.
有时我只想用一个模拟测试1个url,我必须为每个“意外请求”错误跳过严重的环.
我不知道正则表达式,我不喜欢正则表达式,我不想使用正则表达式!
看看这个可怕的代码,我需要一个简单的模拟
$httpBackend.whenGET(/\/atlas\/account\/[0-9]+$/) .respond(atlasAccounts[0]); $httpBackend.whenGET(/\/scripts$/).passThrough(); $httpBackend.whenGET(/^\w+.*/).passThrough(); $httpBackend.whenPOST(/^\w+.*/).passThrough();
为什么这不能简化为一行?
$httpBackend.whenGET(/\/atlas\/account\/[0-9]+$/) .respond(atlasAccounts[0]);
甚至更好,为什么它不支持通配符?他们试图让开发者的生活变得更加困难吗?
$httpBackend.whenGET("/atlas/account*") .respond(atlasAccounts[0]);
这就是我需要的,如果只是这个直观的…
有没有办法禁用这个全或无约定在ngMock和ONLY拦截网址我明确地模拟?
首先添加所有的捕获,然后最终添加一个passthrough为所有.我在我的应用程序中做这样的事情,并且工作很棒:
原文链接:https://www.f2er.com/angularjs/142797.htmlfunction run($httpBackend) { var phones = [{ name: 'phone1' },{ name: 'phone2' }]; // Capture specific request $httpBackend.whenGET('/phones').respond(function () { return phones; }); // Passthrough everything $httpBackend.whenGET(/[\s\S]*/).passThrough(); }
这将捕获“/手机”.如果没有捕获,它将传递.