2017-12-16 11 views
0

私は現在、アプリケーションでVueJS & PHPの混合物を使用しています。以前はAngularJSを使用していましたが、このようにできました。v-forからclickへの値に変数を挿入する

私がしようとしているのは、アンカーをクリックしてJavaScriptメソッドを呼び出すことです。問題は、メソッドが外部に保存されるため、Vueアプリ内のメソッドを呼び出さないようにすることです。だから私の質問は、とにかくだ場合、私は単純に

onclick="function('value', '{{ for.id }}')

の代わりに、Vueのは、Vueのコンポーネントに対して生成されたHTMLを完全に制御を持っているので、

v-on:click(somefunction($for.id)

+0

ますので、関数内ではないvuejsメソッドを使用したいが、VUEのV-のディレクティブを使用していますか? – samayo

+1

外部メソッドを呼び出すvueメソッドを呼び出さないでください(つまり、vueメソッドはJS関数呼び出しをラップします)。 –

+0

私は少し精神的に挑戦していますが、可能ならばあなたが意味するものの例のように見えますか? –

答えて

1

ようにそれをやってのような何かを行うことができますされ、多くの状況で、テンプレートの一部がVueによって再生されます(v-ifv-forなどのようなものへの応答)ので、実際には "古典的な" onclick関数ハンドラを使用することはできません。v-on〜cすべてのメソッドは、コンポーネント内で定義されています。そのメソッドの中から、必要なグローバル関数を呼び出すことができます。

function external(item) { 
 
    alert('You clicked ' + item); 
 
} 
 

 
new Vue({ 
 
    el: '#app', 
 
    data: { 
 
    items: ['apple', 'banana', 'orange'], 
 
    }, 
 
    methods: { 
 
    internal(item) { 
 
     // Delegate to external function 
 
     external(item); 
 
    }, 
 
    }, 
 
});
<script src="https://rawgit.com/vuejs/vue/dev/dist/vue.js"></script> 
 

 
<div id="app"> 
 
    <button v-for="item of items" @click="internal(item)">{{ item }}</button> 
 
</div>

+0

これは実際に私が後で尋ねる疑問に対する答えを持っていましたが。私は私の問題を認識した、私は最初から私のものの "onclick"ラインを見ることができない理由について好奇心をデバッグしようとしていた。しかし、それはちょうどVueの機能と思われるので、実際に私のコードに間違ったことはありませんでした。 –

関連する問題