我将控制器绑定到模型,并使用代理模型。我尝试在控制器初始化函数中获取模型。我使用下一个代码:
Ext.define("AM.controller.Main", {
extend: 'Ext.app.Controller',
views: [
'Grid'
],
models:[
'AM.model.Points'
],
init: function(){
var m = this.getModel('AM.model.Points');
m.getCount();
}
但是没有定义getCount。当我打印变量m时,它表示它是函数:constructor():
function constructor() {
return this.constructor.apply(this, arguments) || null;
}
如何获得控制器的正确模型对象?
在这里,我添加我的商店,我的模型与代理:
Ext.define('AM.store.ServerStore', {
extend: 'Ext.data.Store',
model: 'AM.model.Points'
});
Ext.define('AM.model.Points', {
extend: 'Ext.data.Model',
idProperty: {
name: 'UUID',
type: String,
isUnique: true
},
fields: [
{
name: 'NO',
type: "string"
},
{
name: 'Y',
type: "int"
},
{
name: 'ROW',
type: 'int'
},
{
name: 'SEAT',
type: 'string'
},
{
name: 'PROCEEDED',
type: 'int'
},
{
name: 'X',
type: "int"
},
{
name: "CurrentPlace",
type: "int",
defaultValue: 0
}
],
proxy: {
type: 'ajax',
url: 'http://localhost:81/is-bin/INTERSHOP.enfinity/WFS/EnterpriseOrg-MainChannel-Site/ru_RU/-/RUR/HallScheme-PrepareHSXML?HallSchemeElementUUID=zm1VFZxy014AAAENz2ZCr4MF',
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
params: {
"HallSchemeElementUUID" : "zm1VFZxy014AAAENz2ZCr4MF"
},
remoteSort: true,
reader: {
type: 'xml',
record: 'PLACE'
},
writer: {
type: 'xml',
root: 'PLACE'
}
}
});
答案 0 :(得分:2)
模型用于定义商店中的记录结构。 ExtJS中的Model类不存在getCount()。
相反,您需要在包含模型的控制器中引用您的商店,并在商店实例上调用getCount()。
E.g。
var store = this.getStore('storeName');
//or
//var store = Ext.getStore('storeID');
var numRecords = store.getCount();