2016-11-17 10 views
0

@clickには反応しないようですが、v-bind:clickは登録しません。しかし、メソッドを追加するには、mdl-menuまたはmdl-menu-itemコンポーネントにアクセスすることができないので、ディレクティブにメソッドを入れることはできません。VueJS 2.0とvue-mdlメニューコンポーネントを使用すると、クリックイベントにどのように応答できますか?

私はのような何かをしようとしています(それぞれが異なるvalue、同じfield-nameの4つのメニューオプションを使用しています)。

私は、VueJSの要素があると感じています。私はまだ気付いていないか、イベントで何か魅力的なものになるでしょう。

私は、インラインコードbus.$emit('event', 'data')を追加しようとしたが、何も(エラー、コンソールに何もない、何も)起こりません

サンプル要素:

<span class="bar" v-on:click="clicked"> 
    <mdl-button icons raised colored 
       v-bind:id="generateId('av')" 
       v-bind:class="getButtonClass(row.avStatus)" 
       v-bind:title="row.avStatus" 
    > 
     <i class="material-icons">videocam</i> 
    </mdl-button> 

    <mdl-menu v-bind:for="generateId('av')"> 
     <mdl-menu-item data-field="avStatus">Open</mdl-menu-item> 
     <mdl-menu-item data-field="avStatus">In Progress</mdl-menu-item> 
     <mdl-menu-item data-field="avStatus">Review</mdl-menu-item> 
     <mdl-menu-item data-field="avStatus">Ready</mdl-menu-item> 
    </mdl-menu> 
</span> 

編集1

だから私は得ました最後の夜、クリックイベントはになりますが、正しい方法であるかどうかはわかりません(非常に乱雑です)。メニューオプションがクリックされたときにのみ動作するように

if (e.target.className == "mdl-menu__item") { /* code */ } 

:私は何

は、私が持っているclicked()メソッド内で、親spanv-on:click="clicked"リスナーを追加しました。これは間違っていると感じます。リスナーを直接メニューオプションに追加することはできませんか、少なくとも親のmdl-menuにリスナーを追加することはできませんか?

+0

関連するコードセグメントを追加したり、そのコードセグメントを作成できますか? – Saurabh

答えて

1

Use the .native modifier on the click。ネイティブHTMLノードではなくコンポーネント上でv-onを使用する場合、vueは$emitと宣言された子コンポーネントのカスタムイベントのうちイベントのみを検索し、.nativeを追加するとvueはそれをネイティブイベントとして扱います。

+0

それはチケットだった、ありがとう –

関連する問題