Javascript AngularJS:$httpBackend.when()使用url的方法
我正在尝试按照设置和模拟$httpBackEnd进行e2e测试。我希望在请求模板时传递所有请求。从文档中可以看出,url参数可以是三种类型string functionstring或RegExp及其说明: HTTP url或接收url并在url与当前定义匹配时返回true的函数 我想做什么 我希望所有请求都能直接/查看/。。。。和pub/views/。。。。穿过 我试过的 放一个字符串有效,放一个尝试使用函数无效 RegExp可能是最快的方法,但我对此一无所知。如果你想给我一个有效的RegExp,我将永远感激你Javascript AngularJS:$httpBackend.when()使用url的方法,javascript,regex,angularjs,angularjs-e2e,angular-mock,Javascript,Regex,Angularjs,Angularjs E2e,Angular Mock,我正在尝试按照设置和模拟$httpBackEnd进行e2e测试。我希望在请求模板时传递所有请求。从文档中可以看出,url参数可以是三种类型string functionstring或RegExp及其说明: HTTP url或接收url并在url与当前定义匹配时返回true的函数 我想做什么 我希望所有请求都能直接/查看/。。。。和pub/views/。。。。穿过 我试过的 放一个字符串有效,放一个尝试使用函数无效 RegExp可能是最快的方法,但我对此一无所知。如果你想给我一个有效的RegExp
我知道我的isTemplateUrl函数并不能完全实现我想要的功能,但除此之外,它还应该适用于这两个URL。要实现您想要实现的功能,正则表达式应该是:
/(direct|pub)\/views\/.*$/
要实现您的目标,正则表达式应该是:
/(direct|pub)\/views\/.*$/
如果你没有太多的Url,我建议手动设置Url 因为有了正则表达式,你就可以
direct/views/*
pub/views/*
试试这个,看看它是否能解决你的问题
var devApp = angular.module('app-dev', ['app', 'ngMockE2E']);
devApp.run(function($httpBackend){
$httpBackend.whenGET(/^(direct|pub)\/views\/.*$/).passThrough();
});
如果你没有太多的Url,我建议手动设置Url 因为有了正则表达式,你就可以
direct/views/*
pub/views/*
试试这个,看看它是否能解决你的问题
var devApp = angular.module('app-dev', ['app', 'ngMockE2E']);
devApp.run(function($httpBackend){
$httpBackend.whenGET(/^(direct|pub)\/views\/.*$/).passThrough();
});
我在回答中看到,当httpbackend的**在1.3.0版中有效时,使用函数作为方法*的url匹配。如果你看到其他版本的文档,你会发现你不能使用这个函数
相反,您可以使用此函数将对象作为参数传递给方法test。在您的情况下,这将是:
$httpBackend.whenGET({ test: isTemplateUrl}).passThrough();
我在回答中看到,当httpbackend的**在1.3.0版中有效时,使用函数作为方法*的url匹配。如果你看到其他版本的文档,你会发现你不能使用这个函数
相反,您可以使用此函数将对象作为参数传递给方法test。在您的情况下,这将是:
$httpBackend.whenGET({ test: isTemplateUrl}).passThrough();
谢谢你的帖子。这真的很有帮助!在我的例子中,我希望根据登录的用户和他们拥有的组角色传回一个特定的json文件。我们将用户角色存储在$window.USER.groups中。我使用您的{test:function{}}思想作为参数完成了这项工作。我的解决方案有一个要点:谢谢你的帖子。这真的很有帮助!在我的例子中,我希望根据登录的用户和他们拥有的组角色传回一个特定的json文件。我们将用户角色存储在$window.USER.groups中。我使用您的{test:function{}}思想作为参数完成了这项工作。我的解决方案的要点如下: