2016-06-29 109 views
1

是否可以從過濾器中提取變量,並在更改時更新過濾器?就像它在計算屬性中一樣?Vue'計算'過濾器

我希望能夠做這樣的事情:

Vue.filter('t', function(val) { 
    return this.currentLanguage[val]; 
}); 

,並有當this.currentLanguage改變過濾器重新編譯模板。

顯然我可以傳入一個額外的參數,但我不想爲每個字符串都這樣做。

我的代碼在切換組件時起作用,或者,有沒有辦法強制重新編譯?我正在使用vue-router,但是

this.$route.router.go({ 
    path: this.$route.router.path, 
     query: { 
      t: + new Date() 
     } 
    }) 
} 

不幸的是不會觸發重新編譯。

+0

你能更深入地解釋這個問題?我在這裏創建了一個[JSFiddle](https://jsfiddle.net/asemahle/qzuyxqq7/),其中過濾器依賴於外部變量。它工作沒有問題。 – asemahle

+0

啊,我明白了。我認爲我的問題是,我正在使用我的翻譯器作爲插件,使用'Vue.use(翻譯器)'。因此,在我的翻譯人員中,「this.currentLanguage」沒有被遵守,因爲它只是一個對象的普通屬性,而不是Vue數據。 – SteveEdson

+0

如果您提供了演示此行爲的可運行代碼,則幫助會更容易。 [MCVE](http://stackoverflow.com/help/mcve)類型的東西總是很棒 – asemahle

回答