{% for item in string %}
не похож на javascript. это какая-то рубиновая штука или что-то? Он ищет переменную string
, определенную на любом языке, не являющемся javascript, из которого поступает этот тег, и его неопределенную или неинициализированную, поскольку он не имеет доступа к переменным javscript.
Если вы сделаете его массивом JS (вместо объявления массива внутри строки, как оно есть в настоящее время), вы можете просто назначить массив js напрямую, даже без зацикливания, т.е.
var string = ['text1', 'text2', 'text3', 'text4']; //no double quotes on the outside
var barData = {
labels : string,
//...
[ 116] Причина, по которой ваш цикл data
работает, заключается в том, что переменная, литерал массива, определена внутри тега, поэтому она имеет к ней доступ.