I'm working with Laravel 5.7 and have been using vue-chartjs.
Expected outcome:
I want to pass an array to Vue and loop through specific values to dynamically create a chart.
What I've been trying:
I have the following array:
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"
]
I'm passing the array to my Vue component using the :bind shorthand in my blade.
:chart-data="{{ json_encode($array) }}"
I was reading about using a sequential for loop, but whenever I try and add a for
loop, I get an Uncaught Error: Module build failed: SyntaxError: Unexpected token (19:11)
error.
<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>
The array length is constant at 5, so I could just store their values in hidden inputs in my blade template and make use of document.querySelector
, but this seems clunky and not the best route.
Any advice would be extremely appreciated!