directive
의 사용 예를 제공 할 수 있습니까?
귀하의 요지에는 "완료"라는 매개 변수가 있습니다. 이런 식으로 사용하려고합니까?
<your-ajax-component v-bind:complete="some_callback_fn()"></your-ajax-component>
이것은 params의 용도가 아닙니다. [params]는 하위 구성 요소로 데이터를 전달하기위한 것입니다.
Custom Events을 사용하여 하위 구성 요소의 데이터를 상위로 전달해야합니다. 버튼 카운터 (두 개의 버튼과 메인 카운터 포함)는 좋은 예입니다. 다음과 같이
마찬가지로, 당신은 당신의 아약스 구성 요소에서 $emit()
를 사용할 수 있습니다
// your-ajax-component
export default {
methods: {
doSomething: function (e) {
this.$http.post("/api/some-url", {data}).then(response => {
// your http action is done
// now use $emit to communicate back to parent component
this.$emit("ajax-complete", response) // and you can pass the response data back
}, error => {
// your http action failed
this.$emit("ajax-failed", error) // parent component can handle this error from server
})
}
}
}
을 이제 다른 구성 요소/경로의 템플릿에서, 당신은 당신의-아약스 구성 요소를 삽입 할 수 있습니다 다음과 같이 이벤트를 수신 :
<your-ajax-component v-on:ajax-complete="some_callback" v-on:ajax-failed="error_callback"></your-ajax-component>
참고 :directives
는 매우 다른 목적을 제공합니다. 그것은 DOM 요소에 접근하기위한 것입니다, 그래서 당신은 요소 집중에 뭔가를 할 수 있습니다 - 텍스트 상자에 커서를 넣으십시오.
Custom Directives에 대한 설명서는 부모 - 자식 통신이 아닌 DOM 조작에만 관련된 예제를 제공합니다.
어쩌면 내가 뭘 잘못했는지에 대한 지시어가 어디 있는지 알아 보겠다. il이 방법을 시도해 보았다. –
자식 컴포넌트에서 부모 클래스로'$ emit'에 대한 예제를 원한다면, jsFiddle을 확인할 수있다. 이 질문 - http://stackoverflow.com/questions/40181133/delete-a-vue-child-component – Mani
지시어는 Vue에서 매우 다른 것입니다. 나는 최근에이 질문에 대답 할 때 많은 것을 배웠습니다 - http://stackoverflow.com/a/40178466/654825 - 관심이 있다면 바이올린을 확인할 수 있습니다. – Mani