【发布时间】:2012-07-13 09:11:18
【问题描述】:
我是 sencha 的新手,我正在尝试根据我所在的视图加载带有参数的商店;
因此,我正在尝试为我的列表捕获初始化事件并在其中加载商店。
但初始化方法似乎没有触发
我的控制器
Ext.define('FifaKings.controller.MainController', {
extend: 'Ext.app.Controller',
config: {
views: ['Main','InsertMatch','Kings'],
models: ['Match','User','Team'],
stores: ['Match','Team','User'],
refs: [
{
ref: 'insertMatchForm',
selector: '#insertMatchForm'
}
]
},
init: function() {
console.log('Initialized!');
Ext.Viewport.add(Ext.create('FifaKings.view.Main'));
this.control({
'button[action=insertMatchSubmit]' : {
tap: 'insertMatchForm'
},
'list[id=kingsLeagueList]' : {
initialize: 'loadKingsMatches'
}
});
},
insertMatchForm : function(){
var form = this.getInsertMatchForm();
form.submit({
url:'contact.php'
});
},
loadKingsMatches : function(){
console.log('shit is working');
}
});
我的看法:
Ext.define('FifaKings.view.Kings', {
extend: 'Ext.navigation.View',
requires:[
'Ext.dataview.List'
],
xtype:'kingspanel',
config: {
title: 'Kings',
iconCls: 'star',
items: {
xtype: 'list',
id:'kingsLeagueList',
itemTpl: new Ext.XTemplate(
'<table width="100%" border="0">',
'<tr>',
'<td width=\"35%\">{Player1}</td>',
'<td width=\"30%\" align=\"center\">{ScorePlayer1} - {ScorePlayer2}</td>',
'<td width=\"35%\" align=\"right\">{Player2}</td>',
'</tr>',
'</table>'
),
store: 'Match'
}
}
});
【问题讨论】:
-
Ext.ComponentQuery.query('list[id=kingsLeagueList]')[0] 在控制台返回什么?
-
我将 id 更改为 itemId,现在 Ext.ComponentQuery.query('list[itemId=kingsLeagueList]')[0] 确实返回了列表,但它仍然没有调用我的方法
-
Ext.ComponentQuery.query(...)[0] 是在控制器中添加对组件的引用时调用的内容。尝试将列表的引用更改为 #kingsLeagueList 而不是 list[id=kingsLeagueList]。
-
另外我想知道你为什么在它的初始化函数中设置控制器的控件?有什么理由吗?
-
我在一些教程中看到了:D
标签: javascript extjs sencha-touch-2