协会ExtJs MVC 4.2

时间:2013-09-05 19:10:24

标签: extjs extjs-mvc extjs4.2

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

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

我在这里有两个问题。

  1. 在谷歌浏览器中使用开发者工具时,在上面的代码中我放置调试器;在末尾。我突出显示了记录,右键单击并评估了该部分。我看到数据部分和原始部分。什么是这个原始部分。它包含服务器给我的所有数据(有效负载),甚至是与服务数据相关联的嵌套注释部分。
  2. 我能够在表单中填充字段,但不能填充评论列表。评论列表进入表格中的小组。我如何能够推广评论部分。
  3. 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}
    

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

    请了解关于协会ExtJs MVC的一些知识。

    干杯!

1 个答案:

答案 0 :(得分: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(' ');

        }
    }

因此它在Panel中显示注释数组。