如何使用angular模拟REST而不影响模板

sab*_*ker 1 javascript angularjs

我只想尝试角度.

我想得到一个项目列表并在模板中显示它,现在只是硬编码,并希望看到它如何与ajax一起工作.我没有休息服务器工作,并试图模拟ajax调用.

我刚尝试包括angular mock e2e,但是看起来它也get适用于模板,并引发错误Error: Unexpected request: GET views/main.html

有没有一种简单的方法可以模拟REST请求并让模板与平常一起工作ajax

这不是单元测试或e2e测试场景,更多是后端较少的开发.我在主应用程序上执行此操作而不是在测试中.

我的app.js看起来像这样

'use strict';

var app = angular
.module('sabithangularApp', [
        'ngResource', 'ngMockE2E'
    ]);
app.run(function ($httpBackend) {
    var tasks = [{...},{....},{...}
    ];

    $httpBackend.whenGET('/tasks').respond(tasks);

    $httpBackend.whenGET(/^\/templates\//).passThrough();
    //...
});
Run Code Online (Sandbox Code Playgroud)

和控制台中的错误看起来像

Error: Unexpected request: GET views/main.html
No more request expected
    at $httpBackend (http://127.0.0.1:9000/bower_components/angular-mocks/angular-mocks.js:1177:9)
    at sendReq (http://127.0.0.1:9000/bower_components/angular/angular.js:7967:9)
    at $http.serverRequest (http://127.0.0.1:9000/bower_components/angular/angular.js:7708:16)
    at wrappedCallback (http://127.0.0.1:9000/bower_components/angular/angular.js:11100:81)
    at wrappedCallback (http://127.0.0.1:9000/bower_components/angular/angular.js:11100:81)
    at http://127.0.0.1:9000/bower_components/angular/angular.js:11186:26
    at Scope.$eval (http://127.0.0.1:9000/bower_components/angular/angular.js:12175:28)
    at Scope.$digest (http://127.0.0.1:9000/bower_components/angular/angular.js:12004:31)
    at Scope.$apply (http://127.0.0.1:9000/bower_components/angular/angular.js:12279:24)
    at http://127.0.0.1:9000/bower_components/angular/angular.js:1382:15 
Run Code Online (Sandbox Code Playgroud)

Wal*_*and 5

你需要添加额外的代码行(在所有其他.whenGET()之下),这样忽略了模拟e2e,如下所示:

$httpBackend.whenGET(/.*/).passThrough();
Run Code Online (Sandbox Code Playgroud)

对于任何其他行都没有匹配的任何(get)请求,这是一个全能.

编辑:

下面的行捕获以'view /'开头的所有请求:

$httpBackend.whenGET(/^views\/.*/).passThrough();
Run Code Online (Sandbox Code Playgroud)