我使用JSON.stringify(data);
返回json
这是我的代码
var data;
programService.query({
id: $routeParams.id
}, function (result) {
data = { 'program': result };
data= JSON.stringify(data);
$scope.setPagingData(data,page,pageSize);
});
$scope.setPagingData = function(data, page, pageSize){
var pagedData = data.slice((page - 1) * pageSize, page * pageSize);
$scope.myData = pagedData;
$scope.totalServerItems = data.length;
if (!$scope.$$phase) {
$scope.$apply();
}
};
json数据
{programId:1,
programName:project1,
programContent:content1,
programStartDate:2012-01-01,
templateId: "1"}
,结果将是p,r,o ......
不是programId,1,programName,project1 .....
任何想法?
答案 0 :(得分:0)
我不确定你要做什么,但是让我在你的代码中指出一些可能指向正确方向的东西。
首先,您的JSON数据(我假设您的意思是服务器中的result
:
{programId:1,
programName:project1,
programContent:content1,
programStartDate:2012-01-01,
templateId: "1"}
非常不正常。键和值周围的双引号是正确的JSON格式(数字值不需要引号)。
第二次,假设你的JSON数据确实是你想要的,并期望它在你的回调函数中:
...
}, function (result) {
data = {
'program': result
};
...
});
...
result
是 STRING (因为JSON只是一种基于文本的序列化格式,并且始终是一个字符串),这意味着
data = {
'program': result
};
导致data
看起来像这样的JS对象:
{ 'program' : '{programId:1, programName:project1, programContent:content1, programStartDate:2012-01-01, templateId: "1"}' }
也许您打算将JSON转换为本机JS对象 ,在这种情况下JSON.parse(result)
就是您要找的。 p>
data = {
'program': JSON.parse(result)
};
data
现在看起来像这样的JS对象(假设您的JSON格式正确,否则解析函数将中断):
{
"program" : {
"programId" : 1,
"programName" : "project1",
"programContent" : "content1",
"programStartDate" : "2012-01-01",
"templateId" : "1"
}
}
第三次,返回回调函数:
...
}, function (result) {
...
data= JSON.stringify(data);
$scope.setPagingData(data,page,pageSize);
});
...
data= JSON.stringify(data);
将给定数据转换为 JSON字符串 。如果这是你想要的,那就继续吧!
第四,在您的$scope.setPagingData
函数
$scope.setPagingData = function(data, page, pageSize){
var pagedData = data.slice((page - 1) * pageSize, page * pageSize);
$scope.myData = pagedData;
$scope.totalServerItems = data.length;
if (!$scope.$$phase) {
$scope.$apply();
}
};
.slice
函数和.length
属性都是Array原型的一部分。这意味着如果您传入的data
是一个JS对象,.slice
将抛出“没有方法切片”错误,.length
将返回undefined。