2017-12-16 3 views
0

내 응용 프로그램에서 VueJS & PHP를 혼합하여 사용하고 있습니다. 이전에 AngularJS를 사용했을 때 나는 이렇게 할 수있었습니다.v-for의 변수를 클릭 할 때의 값으로 삽입

본질적으로 내가하려는 것은 클릭 할 때 내 앵커 호출 자바 스크립트 메서드를 만드는 것입니다. 이제 문제는 메소드가 외부에 저장 될 것이므로 내 Vue 앱 내부의 메소드를 호출하는 것을 원하지 않는다는 것입니다. 어쨌든이 있다면 그래서 제 질문은 단순히 대신 뷰는 뷰 구성 요소에 대해 생성 된 HTML을 완벽하게 제어 할 수 있도록

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

+0

그래서 당신은 VUE의 V-에 지시어를 사용하여 작동하지 않을 내부 vuejs 방법하지만를 사용하려면? – samayo

+1

그런 다음 외부 함수를 호출하는 vue 메소드를 호출하면 안됩니다 (즉, vue 메소드가 JS 함수 호출을 래핑). –

+0

나는 약간 정신적으로 도전을 받았지만 가능하다면 어떤 뜻인지 보여주는 예를 보여 주시겠습니까? –

답변

1

처럼 그 일의

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

처럼 뭔가를 할 수있다, 많은 경우 템플릿의 일부가 Vue에 의해 재생성됩니다 (v-if, v-for 등의 응답으로) "클래식"onclick 함수 핸들러를 사용할 수 없기 때문에 v-on을 사용해야합니다 컴퍼넌트 내에서 정의 된 모든 메소드 그런 다음 그 메소드 내에서 원하는 전역 함수를 호출 할 수 있습니다.

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 기능이있는 것처럼 보이므로 실제로 코드를 잘못 작성한 것은 없습니다. –