我现在正在编写没有后端Ajax的前端。我正在使用angular-mocks来模拟API调用,如下所示:

$httpBackend.when('GET', '/somelink').respond(function(method, url, data) {
  //do something
});

但是,如果ajax通过params: {id:12345},它将附加到url为'/somelink?id=12345'when('GET', '/somelink')没捕获

有没有办法使用RegEx或一些技巧来解决此问题?这样,不管params里面有什么,仍然会调用respond()

谢谢。

更新1:

我无法使用.whenGET,因为我的后端系统也具有POSTPUT。所以我需要保持通用性。这两个参数.when('GET', '/somelink')实际上是我的代码中的变量。

由于'/somelink'是另一个JSON中的变量,因此在JSON中使用RegEx /\/somelink/似乎不起作用。至少那是我现在所看到的。

最佳答案

是的,您可以使用以下正则表达式:

$httpBackend.whenGET(/\/somelink/).respond(function(method, url, data) {
    //do something
});

编辑

好的,您可以执行以下操作:
var method = 'GET';
var url = '/somelink';
$httpBackend.when(method, new RegExp('\\' + url)).respond(function(method, url, data) {
    //do something
});

07-24 16:49