2016-12-26 44 views
0

temlate不能設置選擇defaut值

<bm-offer-confirm inline-template> 
     <select v-model="selectedCard"> 
      <option v-for="card in cards" 
     v-bind:value="card.id">@{{card.info}}</option> 
     </select> 
    </bm-offer-confirm> 

在組件

module.exports = { 

data() { 
    return { 
     selectedCard: 0, 
     cards: {}, 
    } 
} 

created(){ 
    Bus.$on('setCardsList', function (cards) { 
     self.cards = cards; 
     this.selectedCard = cards[0].id; 
     //alert(this.selectedCard) shows 2 
    }); 
} 

如果我設置selectedCard:2數據()這是正常工作和選項被選中,而在我的例子這是行不通的。選中的值爲空(未選中),爲什麼?我只能選擇手動選項。

  • 如何填寫卡片對象?你是否在控制檯中遇到任何異常?

不,這是在其他組件

created() { 
    this.getCards(); 
}, 

methods: { 
    getCards() { 
     this.$http.get('/get-cards/') 
      .then(response => { 
       this.cards = response.data; 
       Bus.$emit('setCardsList', this.cards); 
      }) 
    }, 


//The Bus is Vue object; 
//window.Bus = new Vue(); 
+0

你可以創建它的小提琴能夠全面檢查。 – Saurabh

+0

如何填充卡片對象?你是否在控制檯中遇到任何異常? –

+0

你可以顯示事件總線的代碼嗎? 'setCardsList'實際上是在您的應用程序中觸發的? –

回答

0

OMG emited結果,我固定它

created(){ 

    var self = this; //add self link 

    Bus.$on('setCardsList', function (cards) { 
    self.cards = cards; 
    self.selectedCard = cards[0].id; // before this.selectedCard = cards[0].id; 
     //alert(this.selectedCard) shows 2 
    }); 
}