在 ext js4 中访问 json 数据?

Posted

技术标签:

【中文标题】在 ext js4 中访问 json 数据?【英文标题】:Accessing json data in ext js4? 【发布时间】:2012-12-04 09:13:04 【问题描述】:

我正在使用 yii 框架在 Ext Js4 中开发网站。我陷入了一个问题,即如何访问从服务器返回的 json 数据到 Ext js 4。实际上我想显示消息字段以及每个字段在 ext js 4 中的 json 代码中。我该怎么做?

这是我的json代码(json形式的服务器响应)



    "success": true,
    "data": [
         
            "msg": "uname and pass wrong"
        
    ]


这是我的模型类代码

Ext.define('AM.model.Login',
        
            extend:'Ext.data.Model',
            idProperty:'id',
            fields:['id','uname','pass'],
            proxy:
            
                type:'ajax',
                url:'http://localhost/Balaee3/index.php?r=site/contact',

                reader:
                    
                        type:'json',
                        root:'data',
                        successProperty:'success'
                    ,//end of reader
                writer:
                    
                        type:'json',
                        root:'records',
                        //writeAllFields:true
                    ,//End of writer

            //end of proxy
        
);

如何在 ext js4 中访问控制器文件中的 json 代码 在这里我想显示我的 json 数据。

            AM.model.Login.load(512, 
            params: 
            id: 512 
            ,
            success: function(record, operation) 
            character = record; 
            ,//end of success
            failure: function(record, operation) 
            
            Ext.Msg.alert('Error', 'Failed to load model from the server.');
            ,//end of failure
            callback: function(record, operation) 
                //Ext.Msg.alert('Success', 'Model loaded successfully.');
                console.log('Success', 'Model loaded successfully.');
                            //end of call back function
            );

给我一​​些建议

【问题讨论】:

你只需要这个特定的加载操作,还是全局的(所以每次加载模型时机制都是一样的)? 你得到console.log(operation.response.responseText);的正确回复了吗? 【参考方案1】:

在模型中添加 messageProperty。 试试这样的......

reader: 
        type: 'json',
        root: 'data',          
        successProperty : 'success',
        messageProperty : 'message',
        implicitIncludes: true
    

控制器(服务器)

 def message=''    
    def json = request.JSON       
    message=data.message
    def metaData = [ successProperty : 'success', messageProperty : 'message', totalProperty:'num', root:'data']
    def jsonData = [metaData:metaData, success:flag, message:message]
    render jsonData as JSON

【讨论】:

感谢您的回复。但仍然没有得到任何领域。我还添加了一些代码 console.log('success',operation.response.scope.reader.jsonData['msg']);但它显示成功未定义

以上是关于在 ext js4 中访问 json 数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何:在 Ext JS4 中自动调整 GridPanel 列宽 + 读取网格中的所有列值

从自动完成中选择项目后如何填充 Ext.js 4 网格面板单元格?

ext js4 到 sencha 触摸转换器 [关闭]

express.js 4 JSON 解析来自 GET 请求的问题(从数据表请求数据)

ext.js的mvc

EXT.JS 4.0.5 中的网格滚动问题,不考虑工具栏高度