angular1では、特定のファイルのブラウザサイドキャッシュを防ぐためにランダム変数(またはバージョン番号)を追加したhttpProvider.interceptors
を作成する傾向がありました。私はテンプレートファイルのためにほとんどの時間それを使用しました。Angular2はテンプレートURLにパラメータを追加します
どのように私はangular2で同じことをすることができますか?
注:ビューテンプレート
angular1では、特定のファイルのブラウザサイドキャッシュを防ぐためにランダム変数(またはバージョン番号)を追加したhttpProvider.interceptors
を作成する傾向がありました。私はテンプレートファイルのためにほとんどの時間それを使用しました。Angular2はテンプレートURLにパラメータを追加します
どのように私はangular2で同じことをすることができますか?
注:ビューテンプレート
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})
])
をロードするために使用されていないようだと私が正しくあなたを理解している場合
@Component({
templateUrl : 'myTemplate.html?'+(new Date().getTime())
})
はい。私はそれを考えました。しかし、私は、各コンポーネントに設定するのではなく、すべてのテンプレートを1つの方法で実行したいと考えています。 – jobou
興味深い、本当に興味深い。アップアップされました! –