2017-01-17 90 views
1

我期待推到陣列從與在計算屬性在Vue.js 2,Vue的被內Laravel使用,並且我正在以下響應。推到陣列從與在計算屬性在Vue.js 2

createSelection: 「(評估期間的錯誤)」

下面的代碼被用於:

<template> 
    <div> 
    <div>Credits carried through: {{ credits }}</div> 
    <div v-for="meal in meals"> 
     {{meal}} 
     <input :id="meal" :name="meal" v-model.number="creditsPerMeal[meal]" type="number"> 
    </div> 
    <div> 
     Credits used: {{creditsSum}}/{{credits}} 
    </div> 
    </div> 
</template> 

<script> 
    export default { 

    mounted() { 
     console.log('Component ready.'); 

     console.log(JSON.parse(this.f)); 

    }, 

    props: ['f','c'], 

    name: 'credits', 
    data: function() { 
    var meals = JSON.parse(this.f) 

    var creditsPerMeal = {} 
    for (var i = 0; i < meals.length; i++) { 
     creditsPerMeal[meals[i]] = 0 
    } 

    var createSelection = [] 


     return { 
     credits: this.c, 
     meals, 
     creditsPerMeal 
     } 
    }, 

    computed: { 
     creditsSum() { 
     return Object.values(this.creditsPerMeal).reduce((a, b) => a + b, 0) 
     }, 

     createSelection: function(){ 
     for (var i = 0; i < meals.length; i++) { 
      createSelection.push({ 
       food: meals[i], 
       quantity: creditsPerMeal[meals[i]] 
      }) 
      } 
     } 
    } 
    } 
</script> 

回答

2

已計算方法應該返回的東西,其實他們不應該做任何事情,只是計算一些東西並返回。你的計算方法根本沒有回報。所有的 首先將你推的邏輯方法:

computed: { 
     creditsSum() { 
     return Object.values(this.creditsPerMeal).reduce((a, b) => a + b, 0) 
     }, 
    }, 
    methods: { 
     createSelection(){ 
      for (var i = 0; i < meals.length; i++) { 
       createSelection.push({ 
       food: meals[i], 
       quantity: creditsPerMeal[meals[i]] 
       }) 
      } 
     } 
    } 

而且error during evaluation不是問題說明,並沒有看起來像Vue的問題,可能是你能提供更詳細的錯誤?

+0

感謝您的回覆,是的,這是一個Vue錯誤,因爲它只顯示在Vue開發工具中,而不是控制檯。我會給你的代碼去。 –

+0

所以補充說,現在需要調用該方法,最好的方法是什麼?也許看? –

+0

你需要在哪裏打電話給這個方法?問題代碼中看不到'createSelection'標識符的調用。順便說一句,「數據」函數做了一些動作,我覺得這很奇怪,我建議只返回dic,並在'created'鉤子中進行變量初始化。另外,'createSelection'數組應該在數據內部,當你使用它時,你應該像'this.createSelection'一樣反駁,還有一件事 - 讓方法(或計算方法)與數據變量命名一樣是個好主意。 – user3479125