版本化Angular 2应用程序

时间:2016-01-23 19:33:50

标签: angular angular2-routing angular2-template

如何标记Angular 2应用程序的版本?

有一些问题,例如视图(来自templateUrl)未在路径视图(子组件)中更新。我尝试过像

这样的事情
<script>
    System.config({
        // baseURL: '/',
        packages: {        
            app: {
                format: 'register',
                defaultExtension: 'js'
            }
        }
    });
    System.import('v1/app/boot')
        .then(null, console.error.bind(console));
</script>

app/v1/boot并与base一起玩,但它无效。

注意:仅为了记录,在开发时,缓存的模板(通过templateUrl引入)会使事情变得烦人。一个人应该使用隐身会话或清理浏览器等。我通过在像export var fileVersion = '?tmplv=' + Date.now();之类的模块中引入全局变量来解决这个问题,并在以下组件中使用它:

@Component({
    selector: 'my-component',
    templateUrl: '/app/templates/my-component.html' + fileVersion,
})

所以我只需刷新浏览器即可查看更改。在制作中,请使用fileVersion = '';或类似export var fileVersion = '?tmplv=v3';

1 个答案:

答案 0 :(得分:1)

我正在处理同样的问题。 我正在寻找像filerev Node包这样的东西。 目前,我的解决方案是使用角度2来清除缓存:

首先导入RuntimeCompiler。

alphaMin_txt

接下来在构造函数中注入RuntimeCompiler。

AlphaMin 最后用它来清除缓存。请注意,这会清除所有模板。

public partial class MainWindow : Window, INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged([CallerMemberName] String propertyName = "") { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } private string _alphaMin; public string AlphaMin { get { return _alphaMin; } set { if (value != _alphaMin) { _alphaMin = value; NotifyPropertyChanged(); } } } }