2016-06-29 14 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

Vue.util.defineReactive(obj, key, val) 

https://jsfiddle.net/pespantelis/qzuyxqq7/3/

をまた、私はそのためのパッケージを作成していますか?私は[JSFiddle here](https://jsfiddle.net/asemahle/qzuyxqq7/)を作成しました。ここで、フィルタは外部変数に依存しています。問題なく動作します。 – asemahle

+0

ああ、そうです。私は自分の翻訳者がプラグインとしてVue.use(Translator)を使って翻訳者を使っていると思う。したがって、私の翻訳者では、 'this.currentLanguage'はVueデータではなく、オブジェクトの単純なプロパティであるため、観察されません。 – SteveEdson

+0

この動作を実証した実行可能コードを提供した方がずっと簡単です。 [MCVE](http://stackoverflow.com/help/mcve)タイプのものは常に素晴らしいです – asemahle

答えて

関連する問題