Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在AngularJS中将JSON元素转换为Javascript数组?_Javascript_Json_Angularjs_Javascript Framework - Fatal编程技术网

在AngularJS中将JSON元素转换为Javascript数组?

在AngularJS中将JSON元素转换为Javascript数组?,javascript,json,angularjs,javascript-framework,Javascript,Json,Angularjs,Javascript Framework,我使用AngularJS进行$resource调用,以获取JSON格式的一些值。 我的要求是我有一个模型元素,它需要一个如下形式的Javascript数组: [ [1328983200000, 40], [1328983200000, 33], [1328983200000, 25], [1328983200000, 54], [1328983200000, 26], [1328983200000, 25] ]; 在Flot图表中显示。 此信息包含在JSON中,如下所示: { "marks

我使用AngularJS进行$resource调用,以获取JSON格式的一些值。 我的要求是我有一个模型元素,它需要一个如下形式的Javascript数组:

[
[1328983200000, 40],
[1328983200000, 33], 
[1328983200000, 25],
[1328983200000, 54],
[1328983200000, 26], 
[1328983200000, 25]
];
在Flot图表中显示。 此信息包含在JSON中,如下所示:

{
"marks1":15,
"marks2":20,
"dailyMarks":{
"2013-02-27T07:25:35.000+0000":40,
"2013-03-01T07:25:35.000+0000":33,
"2013-02-26T07:25:35.000+0000":25,
"2013-02-23T07:25:35.000+0000":54,
"2013-03-03T10:12:59.000+0000":26,
"2013-03-02T07:12:59.000+0000":25},
}
其中“dailyMarks”包含我需要的元素。我可以将“dailyMarks”转换为Javascript数组,但它似乎不起作用:(下面是我的控制器代码)

我做错了什么?我在模型中得到空白arr[]:( :(
请指导我。

这里的问题是,
$resource
服务是异步的,即使其API可能表明它是同步的。此答案包含有关此主题的更多详细信息:

您应该做的是将数组后处理移动到对资源调用的成功回调,大致如下:

function MyController($scope, $resource) {

    var User = $resource('/marks/fetch?from=:from&to=:to', {from: inStartDate, to: inEndDate}, {
        getAll: {method: 'GET', isArray: false}
    });


    $scope.marks = User.getAll({from: fromDate, to: toDate}, function(marksFromServer){
      //post processing <-- goes HERE
    }
);
};
函数MyController($scope$resource){
var User=$resource('/marks/fetch?from=:from&to=:to',{from:inStartDate,to:inEndDate}{
getAll:{method'GET',isArray:false}
});
$scope.marks=User.getAll({from:fromDate,to:toDate},函数(marksFromServer){

//使用我共享的代码进行后期处理后,我在$scope.marks中获得了值,并且可以正确显示它。该部分正在工作。但是我在“myModel”中没有得到任何东西为什么会这样?这与异步调用的问题完全相同。您得到了以下代码:
var imarks=User.getAll();
它会立即返回空数组。你需要在回调中进行处理。哦……我明白了。明白了。非常感谢你的精彩解释。我已经花了将近30分钟绞尽脑汁思考了什么问题!非常感谢你指明了方向!!:)出于某种奇怪的原因,弗洛特图表没有自己绘制出来(当我提供静态数据时,它起作用。
function MyController($scope, $resource) {

    var User = $resource('/marks/fetch?from=:from&to=:to', {from: inStartDate, to: inEndDate}, {
        getAll: {method: 'GET', isArray: false}
    });


    $scope.marks = User.getAll({from: fromDate, to: toDate}, function(marksFromServer){
      //post processing <-- goes HERE
    }
);
};