質問: filtersの中でメソッドを呼び出しましたが、undefindとなりました。 使えないのでしょうか? ``` filters: { toSomething: function() { // ここがundefindとなる return this.doSomething(); }, }, methods: { doSomething: function() { return 1; }, } ```
回答: 参考になるリンクを張っておきます。 vuejs開発者のお言葉: this undefined in filters フィルター > > 引用: yyx990803が コメントしました on 16 Sep > > > > > > > 私は、フィルタが文脈にアクセスする方法を持っていなければならないことを絶対に確信しています。問題はコアチームがそれについて何をするのだろうか? > > > > > > > > > 申し訳ありませんが、私の意見は変更されていません。フィルタは使用しないでください。コンテキストにアクセスできません。コンテキストが必要な場合は、メソッドを使用します。 > > > とのことです。vueコンポーネントにfiltersを書けるようにはなっていますが、本来、コンテキスト(vueのインスタンス)によらぬグローバルなものだそうで、コンテキストに依存するのであればmethodか、computedに書くのが良いかと。 あと、filtersのメソッドに引数がありませんが、引数を取らないと意味ないかと。 あとこれは一応ですが、filtersは要素を選別するものではなく、文字列の見せ方を変更するものなので、その点ご留意ください。例えば文字列の先頭を大文字にするなど。詳細はリンクの2つ目を参照してください。