2017-05-02 5 views
0

이 있지만, 지금은 때문에 루프의 vuex에서 값을 얻기에 몇 가지 문제가 무엇입니까뷰 여러 V-에 대한 루프 ... 내가 VUE와 vuex 저장소를 사용하고 다른 방법

내 상점과 같이 보입니다 :

categoires: [ 
    { 
    name: 'category1', 
    id: '1', 
    path: '/category1', 
    subcategories: [ 
     { 
     name: 'subcat1', 
     id: '11' 
     subsub: [ 
      { 
      name: 'subsub1', 
      id: '111' 
      }, 
      { 
      name: 'subsub1', 
      id: '111' 
      }, 
     ], 
     }, 
    ], 
    }, 
], 

<span v-for="(category, index) in categories.categories" :key="index" v-if="category.name === 'category1'"> 
    <span v-for="(sub, index) in category.subcategories" :key="index">{{sub.name}} 
</span> 
    </span> 

작업을 완료하는 다른 방법이 있습니까?

건배

+0

주 + : 것은 내가 여러 루프를 사용해야한다는 것입니다, 그리고 그 실망지고 있습니다! – Marketingexpert

답변

1

당신은 당신의 category.name에 대한 데이터를 필터링 할 수 있습니다.

데모https://jsfiddle.net/sumitridhal/5zyzuxqy/1/

JS

const store = new Vuex.Store({ 
    state: { 
     categoires: [{ 
       name: 'category1', 
       id: '1', 
       path: '/category1', 
       subcategories: [{ 
        name: 'subcat1.1', 
        id: '11', 
        subsub: [{ 
          name: 'subsub1', 
          id: '111' 
         }, 
         { 
          name: 'subsub1', 
          id: '111' 
         }, 
        ] 
       },{ 
        name: 'subcat1.2', 
        id: '11', 
        subsub: [{ 
          name: 'subsub1', 
          id: '111' 
         }, 
         { 
          name: 'subsub1', 
          id: '111' 
         }, 
        ] 
       }] 
      }, 
      { 
       name: 'category2', 
       id: '2', 
       path: '/category2', 
       subcategories: [{ 
        name: 'subcat2', 
        id: '22', 
        subsub: [{ 
          name: 'subsub2', 
          id: '222' 
         }, 
         { 
          name: 'subsub2', 
          id: '222' 
         } 
        ] 
       }] 
      } 
     ] 
    }, 
    getters: { 
     getCategoires: state =>() => state.categoires 
    } 
}) 

new Vue({ 
    el: '#app', 
    store, 
    data: { 
     categories: null 
    }, 
    created() { 
     this.categories = this.$store.getters.getCategoires(); 
    }, 
    computed: { 
     filteredData: function() { 
      var filter = this.categories.filter(function(category) { 
       //you filter logic here 
       return category.name === 'category1'; 
      }); 
      console.log(filter[0]); 
      return filter[0]; 
     } 
    } 
}) 

HTML

<div class="container" id="app"> 
    <span v-for="(sub, index) in filteredData.subcategories" :key="index">{{sub.name}} 
    </span> 
</div> 
+0

내 vuex 저장소에서이 데이터를 가져 오는 방법, 제안 사항에 따라 구현하려고합니다 .. – Marketingexpert

+0

답을 확인하려면 https://jsfiddle.net/sumitridhal/5zyzuxqy/1/ –

+0

thnx를 확인하고 시간을 잰 다음 그것이 유효하기 때문에 당신은 유효한 것으로 질문합니다, 그러나 나는 그것을 작동하게 만들 수 없습니다. 하지만 당신의 대답에 thnx, 나는 그것을 고정 후, 지금, 나는 그것을 액세스 할 수 없습니다, 적어도 내 기억 모듈에 문제가 있다고 나타났습니다 ... 나는 여기에 다른 질문을 게시 [http : /stackoverflow.com/questions/43738186/vuex-store-module-access-state] – Marketingexpert