2017-11-15 15 views
1

何を呼び出すべきかわからないので、何を検索するのか分からない。私はディレクティブの周りに見えたが、きた、これは、それは基本的に、私が行うことができるようにする、のいずれかであることですわからない:validateは中くらいと呼ばれるrunCode前に実行されるカスタムメソッド(あるカスタムv-on:click.prevent機能

v-on:click.validate="runCode" 

同じよう.prevent作品

誰かがいくつかのドキュメント/例に私を指す

もっとコンテキスト:。?。私は私の状態に検証データを送りこれらのフォームコンポーネントは次のように使用することができますいくつかのカスタムフォームコンポーネントを書きましたそして、すなわち、

<msp-input 
      v-model="form.username" 
      :validation="{ required, email }" 
      float-label="Email Address" 
      type="email" 
     /> 

状態が一部の検証に失敗した場合、検証ポップアップが表示されるいずれかのフォームにボタンを作成したいと考えています。私はそれを行うために<msp-button>コンポーネントを持つことができましたが、インラインを持つことはいいと思った.validate

+0

これらは修飾語と呼ばれています。私が認識している既存の指令に独自のカスタム修飾子を追加する方法はありません。あなたは 'v-on'の独自のバージョンを書くことができ、あなたが望む変更子を処理することができます。 – Bert

+0

@Bertああ、そうです。さて、彼らが何を呼んでいるか教えてくれてありがとう。私は自分のボタンコンポーネントを記述し、その場合コールバックを渡すという私の他の選択肢に行くと思います。それが私に必要な情報を与えたので、答えを自由に追加してください。 – webnoob

+0

info:https://github.com/vuejs/vue/issues/6982これは私が欲しかったのですが、Evanあなたは何も言っていません:) 彼は良い点を持っていますが、ラッパーを書いています。グローバルミックスインにラッパーを追加するだけでもいいです。 – webnoob

答えて

1

v-on:click.validateを使用すると、validateは修飾子と呼ばれ、clickv-on指示の引数です。これは、custom directivesのドキュメントに記載されています。

現在、独自のカスタム修飾語を組み込みディレクティブに追加する方法はありません(これはgithubリポジトリのいくつかの問題で説明されています)。自分の指示を書くことができ、引数や修飾子を適切に処理できます。

それ以外の場合は、他の方法で問題はありません。

+0

私は 'v-on:click =" doValidation(runCode) "'と 'doValidation'をすでに検証のために使用しているグローバルmixinに配置しました。ありがとう。 – webnoob

0

なぜv-onでないのですか:click = "validate"次に、runCodeをvalidateメソッドの最後の行に置きます。