我按照本教程介绍了如何将 Sencha Touch 2 与 Architect 和 ASP.NET MVC 4 WebApi 后端一起使用:https ://vimeo.com/45207356#一切正常,但很简单。一旦我从详细信息表单中回来,itemtap 事件监听器似乎就不再工作了。无论我是保存、删除还是点击后退按钮,只要我回到主视图(带有列表的那个),我就无法再次进入编辑表单。这是主视图代码:
Ext.define('ClientTestApi.view.Main', {
extend: 'Ext.navigation.View',
config: {
id: 'Main',
items: [
{
xtype: 'list',
title: 'Songs',
id: 'ListePieces',
itemTpl: [
'<div>{Title}, {Artist}, {Album}, {Genre}, {Year}</div>'
],
loadingText: 'Chargement...',
store: 'PieceStore'
}
]
}
});
和控制器:
Ext.define('ClientTestApi.controller.PieceSimple', {
extend: 'Ext.app.Controller',
config: {
refs: {
mainView: '#Main',
formPiece: '#FormPiece',
listePieces: '#ListePieces'
},
control: {
"#ListePieces": {
itemtap: 'onListItemTap'
}
}
},
onListItemTap: function(dataview, index, target, record, e, options) {
var form = Ext.create('ClientMusiqueApi.view.FormPiece',
{
title: record.data.Titre
});
this.getMainView().push(form);
form.setRecord(record);
}
我省略了保存和删除代码,因为当你不做任何事情就点击后退按钮时也会发生这种行为。
因此,当我加载应用程序时,一切正常。我单击一个项目并进入编辑表单(“FormPiece”)。当我返回时(例如导航栏中的后退按钮),列表显示确定,单击它们时选择了项目,但这次没有打开编辑表单。有谁知道为什么?
更新:经过一个简单的测试(我在 onListItemTap 事件中放置了一个警报),我看到即使我回来后该事件也会被触发。问题似乎出在“push()”方法上。但是当我在 Chrome 的控制台中跟踪它时,它运行正常。它不会无缘无故地显示编辑表单。