在Angular 2中模拟后端响应

Mock back-end responses in Angular 2

本文关键字:后端 响应 模拟 Angular      更新时间:2023-09-26

在我使用Angular 1制作的应用程序中,我使用Angular -mock来构建前端,而不需要后端启动并运行:

(function() {
  angular
    .module('myapp')
    .run(['$httpBackend', function($httpBackend) {
      $httpBackend.whenGET(/.*'/api'/ratings'/'?.*/).respond(function(method, url) {
        var params = matchParams(url.split('?')[1]);
        var list = findRatings(ratings, params);
        return createPageResponse(list, params.page, params.size);
      });
    }]
})();

现在我想在Angular 2中这样做。推荐的方法是什么?

用户可以根据某些条件使用不同的服务:

@NgModule({
  imports: [..],
  declarations: [..],
  providers: [
    {
       provide: YourService,
       useClass: env.prod ? YourService : DummyService
    }
  ],
  bootstrap: [..]
})
export class AppModule {
}

或者使用工厂,如果你需要一些更复杂的东西…

@NgModule({
  imports: [..],
  declarations: [..],
  providers: [
    AnotherService,
    {
        provide: YourService,
        useFactory: (isProd, anotherSrvc) => isProd ? new YourService(anotherSrvc) : new DummyService(),
        deps: [env.prod, AnotherService]
    }
  ],
  bootstrap: [..]
})
export class AppModule {
}