Vue.js Vue';计算';过滤器
是否可以从筛选器中提取变量,并在发生更改时更新筛选器?就像在计算属性中一样 我希望能够做到以下几点:Vue.js Vue';计算';过滤器,vue.js,vue-router,vue-component,Vue.js,Vue Router,Vue Component,是否可以从筛选器中提取变量,并在发生更改时更新筛选器?就像在计算属性中一样 我希望能够做到以下几点: Vue.filter('t', function(val) { return this.currentLanguage[val]; }); 当此.currentLanguage更改时,让筛选器重新编译模板 显然,我可以传入一个额外的参数,但我不想对每个字符串都这样做 我的代码在切换组件时工作,所以,有没有办法强制重新编译?我正在使用vue路由器,但是 this.$route.route
Vue.filter('t', function(val) {
return this.currentLanguage[val];
});
当此.currentLanguage
更改时,让筛选器重新编译模板
显然,我可以传入一个额外的参数,但我不想对每个字符串都这样做
我的代码在切换组件时工作,所以,有没有办法强制重新编译?我正在使用vue路由器
,但是
this.$route.router.go({
path: this.$route.router.path,
query: {
t: + new Date()
}
})
}
不幸的是,它不会触发重新编译。您可以使用以下方法定义反应性:
Vue.util.defineReactive(obj, key, val)
此外,我还为此创建了一个包:
您可以使用以下方法定义反应性:
Vue.util.defineReactive(obj, key, val)
此外,我还为此创建了一个包:
你能更深入地解释一下这个问题吗?我做了一个例子,过滤器依赖于一个外部变量。没问题。啊,对了,我明白了。我想我的问题是,我将我的翻译程序作为插件使用,带有
Vue.use(translator)
。因此,在我的转换器中,没有观察到this.currentLanguage
,因为它只是对象的一个普通属性,而不是Vue数据中的属性。如果您提供了演示此行为的可运行代码,则会更容易提供帮助。你能更深入地解释一下这个问题吗?我做了一个例子,过滤器依赖于一个外部变量。没问题。啊,对了,我明白了。我想我的问题是,我将我的翻译程序作为插件使用,带有Vue.use(translator)
。因此,在我的转换器中,没有观察到this.currentLanguage
,因为它只是对象的一个普通属性,而不是Vue数据中的属性。如果您提供了演示此行为的可运行代码,则会更容易提供帮助。打字总是很棒的