在 Angular 2 中模拟后端响应

Mock back-end responses in Angular 2

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

(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 {

}