当从此商店进行 View 更改时,我想使用 setActiveItem() 发送数据:
Ext.define('SkSe.store.Places',{
extend:'Ext.data.Store',
config:{
autoDestroy: true,
model:'SkSe.model.Places',
//hardcoded data
data: [
{
name: 'Caffe Bar XS', //naziv objekta
icon: 'Icon.png', //tu bi trebala ići ikona kategorije kojoj pripada
stamps: 'stamps1' //broj "stampova" koje je korisnik prikupio
},
{
name: 'Caffe Bar Mali medo',
icon: 'Icon.png',
stamps: 'stamps2'
},
{
name: 'Caffe Bar VIP',
icon: 'Icon.png',
stamps: 'stamps3'
}
]
//dynamic data (Matija)
//remember to change the icon path in "Akcije.js -> itemTpl"
/*proxy:{
type:'ajax',
url:'https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=AIzaSyCFWZSKDslql5GZR0OJlVcgoQJP1UKgZ5U',
reader:{
type:'json',
//name of array where the results are stored
rootProperty:'results'
}
}*/
}
});
这是我的详细信息 Controller ,应该从地点存储中获取数据:
Ext.define('SkSe.controller.Details', {
extend: 'Ext.app.Controller',
config: {
refs: {
placesContainer:'placesContainer',
Details: 'details'
},
control: {
//get me the list inside the places which is inside placesContainer
'placesContainer places list':{
itemsingletap:'onItemTap'
//itemtap:'onItemTap'
}
}
},
onItemTap:function(list,index,target,record){
console.log('omg');
var addcontact= Ext.create('SkSe.view.Details',
{
xtype:'details',
title:record.data.name,
data:record.data
});
var panelsArray = Ext.ComponentQuery.query('details');
console.log(panelsArray);
Ext.Viewport.add(addcontact);
addcontact.update(record.data.name);
Ext.Viewport.setActiveItem(addcontact);
console.log(record.data.name);
}
});
我想从上面的places.js模型发送姓名记录。我听说你不能使用 setActiveItem 传递数据,但应该创建一个更新 View 的函数(不,我不能在这里使用 pop 和 push )。
我对 sencha touch 语法不太熟悉,我不确定使用什么函数来做到这一点,显然更新函数不是那个。
最佳答案
我稍微改变了你的逻辑,但提供了一个我认为你正在尝试做的工作示例。
SenchaFiddle 与我在我的机器上运行的有点不同,但你应该能够理解。
加载的初始列表从您的商店获取数据,并且在 itemtap 上将新 View 推送到视口(viewport)上。
您将需要添加一个导航按钮以从 view.View 返回列表,以及更好的详细信息布局。我建议使用自定义样式的嵌套容器或面板,以获得恰到好处的细节。或者,您可以将完整的 html 片段放入其中,其中所有数据都按照您想要的方式布局。
很乐意提供更多帮助。
关于javascript - setActiveItem() 传递数据 sencha touch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17399875/