变量模拟响应取决于url哈希

时间:2013-09-30 13:44:00

标签: angularjs

我有以下代码在我的开发环境中模拟“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哈希。

我该怎么做?

1 个答案:

答案 0 :(得分: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"];
    }
});