2016-12-06 50 views

回答

0

一个常见的问题是为请求URL添加一个随机查询参数值。 您可以创建自定义Http实现,为每个请求执行此操作。

@Injectable() 
class NoCacheHttp extends Http { 
    constructor(_backend: ConnectionBackend, _defaultOptions: RequestOptions) { 
    super(_backend, _defaultOptions); 
    } 

    get(url: string, options?: RequestOptionsArgs) : Observable<Response> { 
    let newUrl = /* add some random or incrementing number query parameter to URL */ 
    return super.get(newUrl, options); 
    } 

    post(...) 
    ... 
} 
@NgModule({ 
    imports: [HttpModule], 
    export: [HttpModule], 
    providers: [{provide: Http, useClass: NoCacheHttp}] 
}) 
export class NoCacheHttpModule {} 
@NgModule({ 
    imports: [BrowserModule, NoCacheHttpModule], 
    declarations: [AppModule], 
    bootstrap: [AppModule] 
}) 
export class AppModule {} 
+0

谢谢大家的帮助,我没有得到我应该把这些@NgModule秒。第二个应该在app.module中吗?和第一个单独的模块?你也可以请解释提供者:[{Http,useClass:NoCacheHttp}]? –

+0

它似乎是正确的解决方案。我只有一个问题,没有ConnectionBackend的提供者!在AppComponent –

+0

这很奇怪。如果你导入了'HttpModule','ConnectionBackend'应该可用。我会自己试试.. –