如何根据单击的注释打开带有属性的窗口
how to open a window with properties based on an annotation clicked
我使用钛和谷歌地图v2的安卓模块。我有一个表视图,当单击时,基于行打开一个新窗口,我正在传递一些基于rowData的属性给它。这工作得很好,现在我的问题是,用户有一个选项,点击地图视图按钮,看到地图上的大头针列表,而不是我的表格视图。我需要能够让用户单击任何给定的注释(就像用户可以单击一行的方式)并打开一个窗口,根据单击的特定注释将属性传递给它。我不知道该怎么处理。我在地图上有一个事件监听器,正在检查源,但我不知道如何访问打开新窗口所需的注释的属性。下面是我的窗口代码,该窗口包含一个地图视图,其中包含一组从前一页传递给它的注释,其中web服务拉下信息并在每次循环迭代中添加注释:
var MapModule = require('ti.map');
var Map = MapModule.createView({
userLocation: true,
mapType: MapModule.NORMAL_TYPE,
animate: true,
region:{latitude: 53.422606, longitude: -7.944465, latitudeDelta: 4, longitudeDelta: 4},
top: '50dp',
left:'10dp',
right:'10dp',
bottom:'10dp',
borderRadius:6,
annotations:self.MapAnnotations,
zIndex:200
});
Map.addEventListener('click', function(e){
Ti.API.info("e.type ----------------- " + e.type);
Ti.API.info("stringified e.clicked source ---------------- " + JSON.stringify(e.clicksource));
var check = JSON.stringify(e.clicksource);
if (JSON.stringify(e.clicksource) == '"title"'){
console.log("Can i get the parent ------- " + e.parent);
console.log("In the if statment for title---------------");
console.log("e.jobID --------- " + e.jobID);
var w = Titanium.UI.createWindow({
url:'ui/handheld/SearchJobsDetailed.js',
backgroundColor: "#204581",
JobID:e.jobID,
Title:e.title,
Trade:e.trade,
Urgency:e.urgency,
Description: e.description,
Photo: e.photo,
JobStatus: e.jobStatus,
ClientID: e.clientID,
DatePosted: e.datePosted,
Email:e.Email,
Mobile:e.Mobile,
navBarHidden:true,
APP_URL:e.APP_URL
});
w.open();
}
});
这是我的代码片段,从前一页的地图,即页面与tableview:
Map_view.addEventListener("click", function (e){
var Map_window=Ti.UI.createWindow({
url:"ui/handheld/MapWindow.js",
backgroundColor: "transparent",
navBarHidden:true,
APP_URL:APP_URL,
modal:false,
MapAnnotations:MapAnnotations
});
SearchJobs_Tab.open(Map_window, {animated:true});
});
和我将注释推入数组的部分:
for(i=0;i<data.length;i++){
Annotations[i]= MapModule.createAnnotation({
latitude: data[i].Latitude,
longitude: data[i].Longitude,
title: capitaliseFirstLetter(data[i].title),
jobID:data[i].jobID,
title:data[i].title,
trade:data[i].trade,
urgency:data[i].urgency,
description: data[i].description,
datePosted: data[i].datePosted,
photo: data[i].photo,
jobStatus: data[i].jobStatus,
clientID: data[i].clientID,
Email: data[i].Email,
Mobile: data[i].Mobile,
APP_URL:APP_URL
});
MapAnnotations.push(Annotations[i]);
使用e.annotation
引用已单击的标注。你的Map click eventListener应该看起来像这样。
Map.addEventListener('click', function(e){
if (e.clicksource === 'pin'){
var w = Titanium.UI.createWindow({
url:'ui/handheld/SearchJobsDetailed.js',
backgroundColor: "#204581",
JobID:e.annotation.jobID,
Title:e.annotation.title,
Trade:e.annotation.trade,
Urgency:e.annotation.urgency,
Description: e.annotation.description,
Photo: e.annotation.photo,
JobStatus: e.annotation.jobStatus,
ClientID: e.annotation.clientID,
DatePosted: e.annotation.datePosted,
Email:e.annotation.Email,
Mobile:e.annotation.Mobile,
navBarHidden:true,
APP_URL:e.annotation.APP_URL
});
w.open();
}
});
相关文章:
- 如何在选项卡上定义属性'的主窗口对象
- 单击按钮时的窗口属性
- 在剑道窗口的模板属性中使用AngularJS代码
- 如何在弹出窗口中隐藏文本属性'It’传单上没有填写
- 将地理 JSON 要素属性添加到地图框弹出窗口
- 有没有更好的方法来处理窗口属性&React/Redux中的子组件
- 窗口对象属性返回一个dom节点
- 选项卡的属性对于选项卡式浏览器窗口中的每个选项卡都具有相同的值
- 如何从父窗口添加弹出窗口的某些属性
- 调整窗口大小时更新数据属性
- 使用变量搜索窗口中的属性使用'在'中;
- 全局变量只是“窗口”对象的属性吗?
- 什么时候可以将属性附加到窗口
- 自定义镶边扩展程序中的挂钩窗口属性
- 在窗口调整大小时删除属性
- 如何在 Tinnymce 编辑器的插入链接弹出窗口中添加 rel 属性
- Sharepoint Jquery - 我可以在关闭列表项上的“编辑属性”窗口后运行脚本吗?
- “_blank”属性窗口的全屏显示.打开
- “打印窗口”在单击“打印”属性窗口后立即关闭
- 为什么在HTML按钮的属性窗口中没有事件按钮