1

ExtJS 4.2 MVC: 我有两个模型 ServiceM 和 CommentsM。ServiceM 与 CommentsM 有关联(hasmany)。我没有忘记添加需要部分 ServiceM。代理是在模型本身中定义的 ajax 类型。我还为每个创建了商店。来到视图,我有一个网格用于查看加载应用程序时派生的所有服务。itemdblclick 事件用于提供有关服务的详细视图,该服务是一个扩展表单的窗口。该表单由以下代码填充:

   var ServiceDetailV = Ext.widget('alias name of the service detail view');
   ServiceDetailV.down('form').getForm().loadRecord(record);

我在这里有两个问题。

  1. 在谷歌浏览器中使用开发人员工具时,在上面的代码中我放置了调试器;在最后。我突出显示了记录,右键单击并评估了该部分。我看到了数据部分和原始部分。这是什么原始部分。它包含服务器给我的所有数据(有效负载),甚至是与服务数据相关联的嵌套评论部分。
  2. 我可以填充表单中的字段,但不能填充评论列表。评论列表进入表单中的一个面板。如何填充评论部分。

JSON数据:

{
"data": [
    {
        "id": 1,
        "x": "some text",
        "q": "some text",
        "a": "some text",
        "r":"some text",
        "comments": [
            {
                "id": 87,
                "commentDate": "date",
                "description": "some text"
            },
            {
                "id": 86,
                "commentDate": "date",
                "description": "some text"
            }
        ]
    }  "total": 1,
"success": true}

现在,我如何访问评论字段并使用这些数据填充表单?

请提供一些关于 Associations ExtJs MVC 的知识。

干杯!

4

1 回答 1

0

好吧,我采取了一步并得到了解决方案。raw 参数实际上具有原始 JSON 有效负载。在控制器部分,我通过选择事件处理了它。

onSelectIssueShowComments : function(selection,record, index, eOpts) {
                        this.getComments().setRecord(record.raw);
                    }

我的视图部分

tpl : [ '<p>Previous Comments: ', '<tpl for="comments">',
            '<p>{#}. {description}       {commentDate}</p>', '</tpl></p>' ],

    setRecord : function(record) {//this record here is record.raw
        this.record = record;

        if (record) {
            this.update(record);
        } else {
            this.update(' ');

        }
    }

所以它在面板中显示评论数组。

于 2013-09-11T17:40:25.720 回答