【发布时间】:2020-07-17 09:56:11
【问题描述】:
我想从控制器中恢复一个变量并显示它,但它显示 NaN 而不是值。 这个想法是在我的控制器中以函数调用进度来计算我的项目的进度,而不是在我的 Html 代码中的表格中显示它。 这是我在控制器中的函数,它返回正确的值:
public function progress($id){
$tasks=Task::where(['projet_id'=>$id])->get();
$x=0;
$i=0;
foreach ($tasks as $task) {
$x = $x + $task->progress;
$i++ ;
}
$progress=$x/$i;
return $progress;
}
这是我想在 project.vue 中显示进度的地方:
<tr v-for="projet in projets.data" :key="projet.id" >
<td @change="avancemant(projet.id)">
{{ parseInt(100 * progress ) }}%
<img :src="`/img/icon/verif.png`" style="width:15px;
v-if="`${parseInt(100*progress)}`==100" >
</img>
<div class="progress">
<div class="progress-bar bg-success" role="progressbar" aria-valuenow="0"
id="progress" v-model="form.progress"
aria-valuemin="`${parseInt(100*task.progress)}`":style="
{'width':`${parseInt(100*progress)}%`}" aria-valuemax="100">
</div>
</div>
</td>
这是我的 project.vue 脚本:
export default {
data(){
return{
progress:'',
projets:{},
projet:{
id:''
},
}}
created(){
this.avancement(this.projet.id);
}
methods:{
avancemant($id){
axios.get('/api/progress/'+$id).then(({data})=>(this.progress =data.data));;
},
}
P.S : 它以 NaN% 显示我
【问题讨论】:
-
你在 Vue 中的
this.progress中有什么?你能提供变量的值吗? -
获取后通过控制台记录
this.progress开始调试。或者在开发者控制台的网络标签中查看值是什么。我怀疑你从你的 api 中得到了错误的数据。 -
在 vue 中未定义
-
@SølveTornøe 问题不在于数据 api,因为当我尝试 tp 时,将 1 作为 projet.id 放在创建部分的函数 avancemant 中它可以工作
-
好的,您确定
projets.data中的所有项目都具有您的api 的有效ID?我真的建议您查看网络选项卡并检查使您收到NaN的呼叫。
标签: laravel vue.js nan laravel-6