2016-07-13 2 views
0

vue-resource를 사용하여 리소스에 CRUD를 수행하고 있습니다. 기사 태그. CUD의 경우 데이터와 함께 csrf 토큰을 보내야합니다. 내 서버 측 코드는 사용자 정의 HTTP 헤더 'X-CSRF-TOKEN'을 받아들이고 값을 확인합니다.동일한 Vue 구성 요소의 다른 옵션에서 참조/사용 속성

태그의 각 항목에 대해 태그 구성 요소를 만듭니다. CSRF 토큰 루트 인스턴스에서 제공 등과 같은 구성 요소에 태그를 바인더 제본되어 VUE-자원 문서에 따르면

<tr v-for="tag in tags" is="tag" :tag="tag" :token="token"></tr> 

을 여기 템플릿

<template id="tag-template"> 
    <tr> 
    <td>@{{ tag.id }}</td> 
    <td>@{{ tag.name }}</td> 
    <td> 
     <button type="button" class="btn btn-xs btn-outline green">Edit</button> 
     <button type="button" class="btn btn-xs btn-outline red" @click="deleteTag(tag,token)">Delete</button> 
    </td> 
    </tr> 
</template> 

, 나는 다음과 같은 헤더 맞춤 설정할 수 있습니다 : Vue.http.headers.common [ 'X-CSRF-TOKEN'] = 토큰; 구성 요소 설정에서이 머리글을 미리 설정할 수도 있습니다. 어떻게 다른 구성 요소 옵션에서 소품 사용할 수 있습니다,

Vue.component('tag', { 
    props: ['tag', 'token'], 
    template: '#tag-template', 
    methods: { 
     deleteTag: function (tag, token) { 
      // I don't want to repeat this line in my updateTag(), createTag() etc. 
      Vue.http.headers.common['X-CSRF-TOKEN'] = token; 
      this.$http.delete('/api/tags/' + tag.id).then(
       function() { 
        vm.tags.$remove(tag); 
       }, 
       function() {} 
      ); 
     } 
    }, 
    http: { 
     headers: { 
      // how to reference/use prop 'token' here? 
      'X-CSRF-TOKEN': 'token from prop list' 
     } 
    } 
}); 

질문은 :

아래의 코드 내가 달성하고자하는 무엇인가?

감사합니다.

답변

0

소품을 사용하지 마십시오. 귀하의 경우에는 필요하지 않습니다.

정말로 prop를 사용하려면 전역 변수에 넣을 수 있습니다.

+0

내 구성 요소, 특히 다른 옵션 개체의 루트 인스턴스 데이터 필드를 어떻게 참조 할 수 있습니까? 나는''X-CSRF-TOKEN ': vm.token'과 같은 것을 시도했지만 행운이 없다. (나는 변수 인스턴스에 root 인스턴스를 할당한다.) – Carter

+0

마찬가지로, 전역 변수 – gurghet

관련 문제