sencha触摸从组件到组件的传递变量

时间:2011-11-20 23:34:48

标签: sencha-touch

我理解通过调用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中的数据?

由于

---------------- EDIT ------------------

我添加完整的代码。在列表视图中,我调用了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
                            }

            }
        }
    ]

1 个答案:

答案 0 :(得分:0)

您还必须新记录推送到您的项目数组中。

this.down('map').setMapCenter({
    latitude: newRecord.data.latitude,
    longitude: newRecord.data.longitude
});

我通常将记录而不是数据推送到视图中,然后使用updateRecord事件接受该记录并将其推送到items数组中。

查看Sencha网站上的导航视图示例,在Show.js视图文件中,他们就是这样做的。