栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

显示来自嵌套json的列表:Sencha Touch 2

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

显示来自嵌套json的列表:Sencha Touch 2

在获得解决方案之前,这里有一些您的代码问题(在解决方案生效之前需要解决这些问题):

  • Contacts
    商店内的代理配置中,JSON roog的配置为
    rootProperty
    ,而不是
    root
    proxy: {type: 'ajax',url: 'contacts.json',reader : {    type : 'json',    rootProperty : 'stores'}

    }

您也可以将这段代码放入模型中,因为您已经在其中放置了代理配置。这两个都合并了(应该在模型内部,并从商店中删除代理):

    proxy: {    type: 'ajax',    url: 'contacts.json',    reader : {        type : 'json',        rootProperty : 'stores'    }}
  • 模型名称应始终为单数,因为它们代表一个对象。所以用

    Menu
    ,不要用
    Menus

  • 您需要在使用它们的类中要求使用的任何类。例如,您需要在

    Sencha.model.Menu
    类内部
    Sencha.model.Contact
    添加类,因此请将其添加到内部的
    requires
    属性中
    Contact.js

    Ext.define('Sencha.model.Contact', {extend: 'Ext.data.Model',requires: ['Sencha.model.Menu'],...

    });

  • 您需要

    associationKey
    像通常那样在hasMany关联中使用
    menus
    (从Model名称生成),但在JSON中使用它
    menu

  • hasMany
    belongsTo
    配置应该
    config
    在模型的内部。

    Ext.define('Sencha.model.Contact', {extend: 'Ext.data.Model',requires: ['Sencha.model.Menu'],config: {    ...    hasMany: {        model: "Sencha.model.Menu",        associationKey: 'menu'    }}

    });

至于 解决方案 :)-您可以

itemTpl
在列表内部进行修改,以显示与正在显示的记录相关的信息。为此,您可以使用:

<tpl for="associatedModelName">     {field_of_associated_model}</tpl>

因此,根据您的情况,您可以执行以下操作:

itemTpl: [    '{name}',    '<div>',        '<h2><b>Menu</b></h2>',        '<tpl for="menus">', '<div> - {item}</div>',        '</tpl>',    '</div>'].join('')

这是一个项目的下载(使用SDK工具生成),该项目包括一个演示,主要使用您的代码:http :
//rwd.me/FS57



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/485594.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号