【问题标题】:Not getting data in kinetic js throught JSON没有通过 JSON 在动力学 js 中获取数据
【发布时间】:2014-06-05 12:57:36
【问题描述】:

我被困在通过下面的 json 将数据从 php 传递到 kineticjs 是代码

$arrParams = array('images' =>$images, 'captions' => $content);
init({"container":"slider","data":<?php echo json_encode($arrParams); ?>});

我想在下面给出的编码 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]);
    }
}

我遇到了类似行中的错误

totalObjects = data.images.length;

数据未定义...这意味着图像不是从 json 数组传递的

【问题讨论】:

  • 你在哪里给data赋值?
  • 我在我的 .php 文件中分配数据并使用 json 传递
  • 是的,但是您的 javascript 中的 data 变量不会自动从 JSON 中获取值。正如你所拥有的,你永远不会给data 一个值,所以它是undefined
  • 那么我如何为数据赋值以及我必须在哪里赋值

标签: javascript php json angularjs canvas


【解决方案1】:

您正在使用 PHP 对 JSON 进行编码,现在您只需使用 JavaScript 对其进行解析并将其存储在您的 data 变量中。

data = JSON.parse(config.data);

把它放在你的 init 函数的开头,它应该适合你。

【讨论】:

  • 谢谢老兄...我做了同样的事情 init({data: }) 并且在 java 脚本中我使用“config.data”获取数据"
猜你喜欢
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
  • 1970-01-01
相关资源
最近更新 更多