sencha touch 将变量从组件传递到组件
Posted
技术标签:
【中文标题】sencha touch 将变量从组件传递到组件【英文标题】:sencha touch pass variables from component to component 【发布时间】:2011-11-20 23:34:48 【问题描述】:我知道通过调用 MyDetailView.Update(record.data) 我将 record.data 发送到 MyDetailView 并可以在 xtemplate 中访问它们:
tpl:'<h1>title></h1>'
另外,我想在 xtype 'map' 的项目中使用 record.data:
items: [
xtype: 'map',
getLocation: true,
padding: '20 0 0 0',
mapOptions:
center : new google.maps.LatLng(lng, lat), // <-- here record.data.lat
zoom : 15,
mapTypeId : google.maps.MapTypeId.ROADMAP,
navigationControl: true,
navigationControlOptions:
style: google.maps.NavigationControlStyle.DEFAULT
]
如何访问 MyDetailView 中的数据?
谢谢
----------------编辑------
我添加了我的完整代码。在列表视图中,我调用了 AppDetailcard.update(record.data)。
var AppDetailcard = new Ext.Panel (
id: 'detailcard',
stylehtmlContent: false,
tpl: 'my lat', //<-- here it works
fullscreen: true,
dockedItems: [AppDetailcardToolbar],
items : [
xtype: 'map',
getLocation: true,
mapOptions:
center : new google.maps.LatLng(data.lat, data.lng), //<-- here it does not
zoom : 15,
mapTypeId : google.maps.MapTypeId.ROADMAP,
navigationControl: true,
navigationControlOptions:
style: google.maps.NavigationControlStyle.DEFAULT
]
【问题讨论】:
看那个代码,我猜可能是 this.lng & this.lat ? @MozMorris 我忘了提到我确实尝试过但没有成功。虽然它不会引发任何错误,但 GMap 根本没有显示。 【参考方案1】:您还必须将新记录推送到您的项目数组中。
this.down('map').setMapCenter(
latitude: newRecord.data.latitude,
longitude: newRecord.data.longitude
);
我通常将 记录(而不是数据)推送到视图中,然后使用 updateRecord 事件接受该记录并将其进一步推送到 items 数组中。
查看 Sencha 网站上的 Navigationview 示例,在 Show.js 视图文件中,他们正是这样做的。
【讨论】:
以上是关于sencha touch 将变量从组件传递到组件的主要内容,如果未能解决你的问题,请参考以下文章
是否可以覆盖 Sencha Touch 中特定组件的 SASS 文件?