2016-03-21 15 views
1

angular1では、特定のファイルのブラウザサイドキャッシュを防ぐためにランダム変数(またはバージョン番号)を追加したhttpProvider.interceptorsを作成する傾向がありました。私はテンプレートファイルのためにほとんどの時間それを使用しました。Angular2はテンプレートURLにパラメータを追加します

どのように私はangular2で同じことをすることができますか?

注:ビューテンプレート

答えて

2
を次のように私はあなたが簡単にそれを行うことができます HTTPサービスとのすべてのソリューションを使用することはできません

解決策を見つけました。コンポーネントのビューを構築するためのテンプレートシステムは、XHRImplで実装されているサービスXHRを直接使用します。これはTemplateNormalizerクラスのnormalizeTemplateメソッドで確認できます。

私のソリューションは、この実装を拡張し、getメソッドをオーバーライドすることでした。

import { XHRImpl } from 'angular2/src/platform/browser/xhr_impl' 
import { XHR } from 'angular2/compiler' 

class VersionedXHRImpl extends XHRImpl { 
    get(url) { 
    const separator = url.indexOf('?') === -1 ? '?' : '&' 
    url = url + separator + 'v=' + config.version 
    return super.get(url) 
    } 
} 

bootstrap(App, [ 
    provide(XHR, {useClass: VersionedXHRImpl}) 
]) 
+0

興味深い、本当に興味深い。アップアップされました! –

0

をロードするために使用されていないようだと私が正しくあなたを理解している場合

@Component({ 
    templateUrl : 'myTemplate.html?'+(new Date().getTime()) 
}) 
+0

はい。私はそれを考えました。しかし、私は、各コンポーネントに設定するのではなく、すべてのテンプレートを1つの方法で実行したいと考えています。 – jobou

関連する問題