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!