1

我有以下代码可以在我的开发环境中模拟“App”的响应:

<script>
    var AppDev = angular.module('AppDev', ['App', 'ngMockE2E' ]);


    AppDev.run(function($httpBackend) {
        $httpBackend.whenGET('/api/call').respond({"somekey" : "5000"});
        //$httpBackend.whenGET('/api/call').respond(422, { 13 : "oh shit!"});
        //$httpBackend.whenGET('/api/call').respond(500, "my error text");
    });
</script>

我想以某种方式进行此切换,基于外部输入(例如在该页面中单击以设置 url 哈希)。

我该怎么做?

4

1 回答 1

1

respond()方法还可以将函数作为参数,并将请求 url 传递给函数,因此您可以解析 url 并使用它做任何您想做的事情。例如:

$httpBackend.whenGET(/^\/api\/call.*/).respond(function(method, url, data, headers) {

    /*
     * The request URL is available, so you can do whatever you want, such as the
     * following:
     */
    if (url matches condition 1) {
        return [200, {"somekey" : "5000"}];
    } else if (url matches condition 2) {
        return [422, { 13 : "Oops"}];
    } else {
        return [500, "my error text"];
    }
});
于 2013-09-30T15:11:38.227 回答