Javascript 无法通过JSON获取动态js中的数据

Javascript 无法通过JSON获取动态js中的数据,javascript,php,json,angularjs,canvas,Javascript,Php,Json,Angularjs,Canvas,我一直在通过json将数据从php传递到kineticjs,下面是代码 $arrParams = array('images' =>$images, 'captions' => $content); init({"container":"slider","data":<?php echo json_encode($arrParams); ?>}); $arrParams=array('images'=>$images,'captions'=>$content); ini

我一直在通过json将数据从php传递到kineticjs,下面是代码

$arrParams = array('images' =>$images, 'captions' => $content);
init({"container":"slider","data":<?php echo json_encode($arrParams); ?>});
$arrParams=array('images'=>$images,'captions'=>$content);
init({“容器”:“滑块”,“数据”:});
我想在下面给定的编码kineticjs代码中传递上面的Json数组

var data;
var canvasWidth;
var canvasHeight;
var stage;
var layer = new Kinetic.Layer();
var imageNodes = [];
var imageObjects = [];
var imageBox = [];
var captionBox = [];
var textNodes = [];
var totalObjects = 0;
var objectLoaded = 0;

var currentSlide = false;
var defaultPosition = [];
var rightCardPosition = [];
var leftCardPosition = [];

function init(config) {
    canvasWidth = config.width | 600;
    canvasHeight = config.height | 300;

    defaultPosition["x"] = canvasWidth / 4;
    defaultPosition["y"] = canvasHeight + 5;

    leftCardPosition["start"] = [];
    leftCardPosition["end"] = [];
    leftCardPosition["start"]["x"] = (canvasWidth / 3) - 180;
    leftCardPosition["start"]["y"] = canvasHeight - 260;
    leftCardPosition["end"]["x"] = (canvasWidth + 100);
    leftCardPosition["end"]["y"] = -250;

    rightCardPosition["start"] = [];
    rightCardPosition["end"] = [];
    rightCardPosition["start"]["x"] = (canvasWidth / 3) + 160;
    rightCardPosition["start"]["y"] = canvasHeight - 300;
    rightCardPosition["end"]["x"] = (canvasWidth + 100);
    rightCardPosition["end"]["y"] = -250;

    stage = new Kinetic.Stage({
        container: config.container,
        width: canvasWidth,
        height: canvasHeight
    });

    totalObjects = data.images.length;
    for (var i = 0; i < data.images.length; i++) {
        totalObjects += data.captions[i].length;
    }
    for (var i = 0; i < data.images.length; i++) {
        loadImage(data.images[i]);
        loadCaption(data.captions[i]);
    }
}
var数据;
var画布宽度;
var画布高度;
var期;
var layer=新的动能层();
var imageNodes=[];
var imageObjects=[];
var-imageBox=[];
var captionBox=[];
var textNodes=[];
var-totalObjects=0;
var objectload=0;
var currentSlide=假;
var defaultPosition=[];
var rightCardPosition=[];
var leftCardPosition=[];
函数初始化(配置){
canvasWidth=config.width | 600;
canvasHeight=config.height | 300;
defaultPosition[“x”]=画布宽度/4;
defaultPosition[“y”]=画布高度+5;
leftCardPosition[“开始”]=[];
leftCardPosition[“end”]=[];
leftCardPosition[“开始”][“x”]=(画布宽度/3)-180;
leftCardPosition[“开始”][“y”]=画布高度-260;
leftCardPosition[“end”][“x”]=(画布宽度+100);
leftCardPosition[“end”][“y”]=-250;
rightCardPosition[“开始”]=[];
rightCardPosition[“结束”]=[];
rightCardPosition[“开始”][“x”]=(画布宽度/3)+160;
rightCardPosition[“开始”][“y”]=画布高度-300;
rightCardPosition[“end”][“x”]=(画布宽度+100);
右卡片位置[“结束”][“y”]=-250;
阶段=新的动力学阶段({
container:config.container,
宽度:画布宽度,
高度:画布高度
});
totalObjects=data.images.length;
对于(var i=0;i
我在排队时遇到了错误

totalObjects=data.images.length


数据未定义。。。这意味着图像不是从json数组传递的。您正在用PHP编码json,现在只需要用JavaScript解析它,并将其存储在
数据
变量中

data = JSON.parse(config.data);

把它放在
init
函数的开头,它应该对你有用。

你在哪里分配
data
值?我在.php文件中分配数据并使用jsonYeah传递,但是javascript中的
data
变量不会自动从JSON获取值。正如您所拥有的,您从不给数据赋值,因此它是未定义的。那么,我如何为数据赋值,我必须在哪里赋值呢。。。我在init({data:})中做了同样的事情,在java脚本中,我使用“config.data”获取数据