Angular2将params附加到模板URL

时间:2016-03-21 10:41:23

标签: angular

在angular1中,我习惯创建一个附加随机变量(或版本号)的httpProvider.interceptors,以防止浏览器端缓存特定文件。我大部分时间都用它来模板文件。

我怎样才能在angular2中做同样的事情?

注意:我无法使用HTTP服务的任何解决方案,因为它似乎不用于加载视图模板

2 个答案:

答案 0 :(得分:2)

我找到了解决方案。用于构建组件视图的模板系统直接使用在XHRImpl中实现的服务XHR。您可以在normalizeTemplate类的TemplateNormalizer方法中查看此内容。

我的解决方案是扩展此实现并覆盖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})
])

答案 1 :(得分:0)

如果我理解正确,你可以按照以下方式轻松完成

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