1

我正在使用 Catalyst::View::JSON 和 Catalyst::TraitFor::Controller::jQuery::jqGrid 将 JSON 数据检索到首页。下面是相关代码(从 Catalyst::TraitFor::Controller::jQuery::jqGrid 示例中复制了大部分内容):

   包 UW::Controller::Site;
使用 utf8;
使用驼鹿;
使用命名空间::autoclean;
BEGIN {扩展 'Catalyst::Controller'; }
与'Catalyst::TraitFor::Controller::jQuery::jqGrid';

子json:本地{
我的 ($self, $c) = @_;
我的 $merchant_rs = $c->model('WindyDB::Merchant')->search({});
$merchant_rs = $self->jqgrid_page($c, $merchant_rs);
   我的 $row = 0;
我的@row_data;
我的 $i = 0;
而(我的 $mer = $merchant_rs->next){
$i++;
我的 $mer_id = $mer->mer_id;
$c->log->debug($mer_id);
我的 $single_row = {
'id' => $i,
'细胞' => [
'id' => $mer->mer_id,
'name' => $mer->mer_name,
],
};
推@row_data,$single_row;

}

$c->log->debug(@row_data);
$c->stash->{json_data}->{rows} = \@row_data;
$c->stash->{current_view} = 'JSON';
}

但我发现格式有点奇怪:

{"current_view":"JSON","json_data":{"page":0,"records":"8","rows":[{id:1,
单元格:["test1","6"]},{id:2, 单元格["test2","7"]}],"total":1}}

实际上,作为 jqGrid doument,数据格式应该是:

{总计:“xxx”,页面:“yyy”,记录:“zzz”,行:[{id:“1”,
单元格:[“cell11”,“cell12”,“cell13”]},{id:“2”,单元格:[“cell21”,
"cell22", "cell23"]}, ... ] }

这是否意味着“current_view”和“json_data”对是多余的?那么有没有办法在服务器发货之前删除 current_view 和 json_data ?还是我错误地使用了模块?我是 Catalyst 和 jqGrid 的新手,请帮忙。任何回复都非常感谢!

4

1 回答 1

0

您使用的是什么 JSON 视图?似乎它正在转换存储中的所有内容(这是默认设置。)需要将 JSON 视图配置为仅转换存储的 json_data 字段中的内容。

在您的“MyApp.pm”中添加如下内容:

MyApp->config({ 'View::JSON' => { expose_stash => 'json_data' } });

将 MyApp 替换为您的应用程序控制器的名称。

于 2010-07-13T13:42:46.523 回答