2016-11-08 9 views
2

インライン/インテンプレートハンドラ内の放出イベントに渡される引数/パラメータにアクセスすることは可能ですか?ような何か:私は正確に何をしようとしているインライン(テンプレート内)イベントハンドラのVue 2引数

<component @some-event="someObject.field = $arguments[0]"></component 

は、スコープ内のオブジェクトに値を代入です。私はそれを行うメソッドを作成し、それをイベントのハンドラとして使用することができますが、これがインラインステートメントとして機能するかどうかは疑問でした。

答えて

8

$arguments[0]ではなく、ちょうどarguments[0]($なし)です。私はそれが実際にインラインハンドラで動作することに驚いています。したがって、次のコードは有効で、動作します:

<component @some-event="someObject.field = arguments[0]"></component> 

Methods in Inline Handlersためのドキュメントがイベントを経由して渡される最初のパラメータを取得し、特殊変数として$event指定します。私は今までそれをいつも使ってきました。

あなたの質問を読んだ後、少しより多くの研究は、このリファレンスに私を導いた:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments

をすべてのJavaScript関数は、関数が可変個の引数を取得することが予想されるときに使用されるargumentsと呼ばれるローカル変数を、持っているようです。

インラインステートメントとしてarguments[]を使用することは可能ですが、vue.jsフレームワークのコンテキスト内ではどこにも記載されていません。

<component @some-event="someObject.field = $event"></component> 
:あなたはイベントのためにインラインハンドラで $eventを使用している場合、それは明確に文書化され、Vue.js

$eventのサンプルの使用状況の将来のバージョンで中断されませんよう一方、それはより安全な感じ

関連する問題