我是ExtJS的新手,并使用Ext.irect与Ext.direct编写了一个示例应用程序。我配置了我的模型,如下所示
Ext.define('AM.model.UserModel', {
extend: 'Ext.data.Model',
alias : 'widget.userModel',
fields: ['SlNo','name']
proxy: {
type: 'direct',
directfn: HelloWorld.getGridDetails
}
});
我正在使用网格面板,如下所示
Ext.define('AM.view.user.List' ,{
extend: 'Ext.grid.Panel',
alias : 'widget.userlist',
title : 'Users',
initComponent: function() {
this.store = {
model:'AM.model.UserModel',
autoload:true,
};
this.columns = [
{
header: 'SlNo',
dataIndex: 'SlNo',
width:100,
disabled:false
},
{
header: 'Name',
dataIndex: 'name',
width:150
}
];
this.callParent(arguments);
}
});
最后我的index.js看起来像这样
Ext.require('Ext.direct.*', function() {
Ext.direct.Manager.addProvider(Ext.app.REMOTING_API);
});
Ext.require([ 'AM.view.user.List','AM.model.UserModel']);
Ext.application({
name: 'AM',
appFolder:'myApp',
launch: function() {
Ext.Direct.addProvider(Ext.app.DirectAPI);
Ext.create('Ext.container.Viewport', {
items: {
xtype: 'userlist',
width: 552
},
renderTo: Ext.getBody()
});
}
});
我从HelloWorld.getGridDetails
拨打index.js
时收到的数据如下所示
action: "HelloWorld",
method: "getGridDetails",
result: [
{slNo:2, name:"patton"},
{slNo:3, name:"Omar N Bradely"},
{slNo:1, name:"Sam Manekshaw"}
],
tid: 1,
type: "rpc"
问题在于我无法将数据加载到网格中,即,在显示网格时,根本不会调用直接方法HelloWorld.getGridDetails
。我错过了什么吗?你们中的任何人都可以帮忙吗?
感谢
库马尔
答案 0 :(得分:1)
我实际上已经找到了解决方案。虽然它现在没有意义,但迟到总比没有好。我需要在index.html中修改以下内容
<script type="text/javascript" src="Api.js"></script>
**<script type="text/javascript">Ext.direct.Manager.addProvider(Ext.app.REMOTING_API);</script>**
<script type="text/javascript" src="index.js"></script>
添加
后<script type="text/javascript">Ext.direct.Manager.addProvider(Ext.app.REMOTING_API);</script>
在index.js之前。它开始运作了。