2017-01-17 61 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