Javascript 在vue chartjs中循环通过数组
我正在使用Laravel 5.7,并一直在使用 预期结果: 我想将一个数组传递给Vue并循环特定值以动态创建图表 我一直在尝试的: 我有以下数组:Javascript 在vue chartjs中循环通过数组,javascript,arrays,laravel,vue.js,Javascript,Arrays,Laravel,Vue.js,我正在使用Laravel 5.7,并一直在使用 预期结果: 我想将一个数组传递给Vue并循环特定值以动态创建图表 我一直在尝试的: 我有以下数组: 0 => array:4 [▼ "order_date" => "2019-04-01" "days_remaining" => 29 "cash_remaining" => 26714.63 "ratio" => "1.11" ] 1 => array:4 [▼ "order_date" =&
0 => array:4 [▼
"order_date" => "2019-04-01"
"days_remaining" => 29
"cash_remaining" => 26714.63
"ratio" => "1.11"
]
1 => array:4 [▼
"order_date" => "2019-04-02"
"days_remaining" => 28
"cash_remaining" => 26184.61
"ratio" => "1.41"
]
我正在使用刀片服务器中的将阵列传递给Vue组件
:chart-data="{{ json_encode($array) }}"
我正在阅读,但每当我尝试为循环添加一个,我都会得到一个未捕获的错误:模块构建失败:语法错误:意外标记(19:11)
错误
<script>
import { Line } from 'vue-chartjs'
export default {
extends: Line,
props: ['chartData'],
mounted() {
console.log(this.chartData); // This works
var length = this.chartData.length; // So does this
this.renderChart({
labels: ['Ratio Value'],
// This produces the error listed above
for ( var i = 0; i < length; i++ )
{
console.log(chartData[i]);
}
datasets: [
// I want to dynamically produce the following
{
label: [chartData.order_date],
data: chartData.ratio
}
]
})
}
}
</script>
从“vue chartjs”导入{Line}
导出默认值{
扩展:行,
道具:['chartData'],
安装的(){
console.log(this.chartData);//这很有效
var length=this.chartData.length;//这也是
这是我的艺术({
标签:[“比率值”],
//这会产生上面列出的错误
对于(变量i=0;i
数组长度恒定为5,因此我可以将它们的值存储在刀片模板的隐藏输入中,并使用document.querySelector
,但这似乎很笨重,不是最好的方法
任何建议都将不胜感激 将您的for()
移出renderChart()
调用:
import { Line } from 'vue-chartjs'
export default {
extends: Line,
props: ['chartData'],
mounted() {
var length = this.chartData.length;
var array = this.chartData;
// Create new arrays to store the data
var ratioArray = [];
var labelsArray = [];
for ( var i = 0; i < length; i++ ) {
// Then push our data to the new arrays
labelsArray.push(array[i] ? array[i].order_date : '');
ratioArray.push(array[i] ? array[i].mbr : '');
}
this.renderChart({
labels: labelsArray, // Reference our new labelsArray
datasets: [
{
label: 'Ratio',
data: ratioArray, // And our new ratioArray
}
]
})
}
}
从“vue chartjs”导入{Line}
导出默认值{
扩展:行,
道具:['chartData'],
安装的(){
var length=this.chartData.length;
var数组=this.chartData;
//创建新数组以存储数据
var-ratioArray=[];
var labelsArray=[];
对于(变量i=0;i
当。从mounted()
内循环此.cartData
时,您不能调用函数?我看不出这里有什么问题。嘿@Camilo,首先,谢谢你的回复。这就是我正在努力的地方——我知道我需要在阵列中循环,我只是不知道如何做到这一点。你能给出一个例子的答案吗?我是一个PHP/Laravel guy-JS不是我的强项。你链接的问题回答了这个问题,你应该尝试在你的mounted()
函数中使用for()
。可能重复@Camilo-如果它回答了这个问题,我就不会问它了。每当我回答问题时,我通常会举一个例子,以便人们能够学习。这不是网站的全部意义吗?分享知识?我将把这个答案标记为被接受,因为你帮助我找到了正确的道路。我对其进行了编辑,以包含组件re:将数据推送到新阵列。非常感谢您今天抽出时间,非常感谢!