起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3145|回复: 11

[结贴] 如何在map.html文件中,调用mapActivity.w的函数或事件?

  [复制链接]

56

主题

370

帖子

963

积分

高级会员

Rank: 4

积分
963
QQ
发表于 2015-12-29 15:22:48 | 显示全部楼层 |阅读模式
在外卖案例中,提供了调用地图的例子。
如果用户在map.html中,点击了我们添加的标志,如何调用mapActivity.w中函数,或者事件,来为用户展示所点目标的详细信息?
请高手们指教一下,谢谢!!!
发表于 2016-4-8 13:13:05 | 显示全部楼层
负暄 发表于 2015-12-30 09:27
非常感谢版主梁小飞的指点,问题已解决。解决结果总结如下:
1、在调用map.html的父窗口mapActivity.w中, ...

3.4以上的新版本中,第三步 第三行代码建议换成这种写法:
var parentModel = partenW.justep.Util.getModel(parentDiv);
qq:1912779713
WeX5教程--WeX5下载
回复 支持 1 反对 0

使用道具 举报

发表于 2015-12-29 15:33:48 | 显示全部楼层
map.html实际上在.w中是以iframe的方式运行的!
你网上找找,获取iframe外层window对象的方法!这样就获得.w中的window对象了!
然后使用window.justep.bind.contextFor('外层节点对象').$model  获得model 就可以获得对用的组件了
http://bbs.wex5.com/forum.php?mo ... 1&pid=165198038
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

56

主题

370

帖子

963

积分

高级会员

Rank: 4

积分
963
QQ
 楼主| 发表于 2015-12-29 20:23:59 | 显示全部楼层
liangyongfei 发表于 2015-12-29 15:33
map.html实际上在.w中是以iframe的方式运行的!
你网上找找,获取iframe外层window对象的方法!这样就获得.w ...

非常感谢回复。
但是我用如下句子去取mapActivity.w中的按钮时
var parentObj = window.parent.justep.bind.contextFor('hideMapBtn');

却得到了如下报错信息:
Uncaught TypeError: Cannot read property 'contextFor' of undefined
回复 支持 反对

使用道具 举报

56

主题

370

帖子

963

积分

高级会员

Rank: 4

积分
963
QQ
 楼主| 发表于 2015-12-29 20:28:47 | 显示全部楼层
liangyongfei 发表于 2015-12-29 15:33
map.html实际上在.w中是以iframe的方式运行的!
你网上找找,获取iframe外层window对象的方法!这样就获得.w ...

在控制台里查看,window.parent.justep是有的,但是window.parent.justep.bind就是undefined了
回复 支持 反对

使用道具 举报

56

主题

370

帖子

963

积分

高级会员

Rank: 4

积分
963
QQ
 楼主| 发表于 2015-12-29 20:40:37 | 显示全部楼层
liangyongfei 发表于 2015-12-29 15:33
map.html实际上在.w中是以iframe的方式运行的!
你网上找找,获取iframe外层window对象的方法!这样就获得.w ...

window.justep.Bind
bind改成Bind有效,但是contextFor函数中的参数‘外层节点对象’ 有点不明白,是指传xid进去吗?

下面是控制台的调试信息:

window.parent.justep.Bind
Object {version: "3.2.0", utils: Object, memoization: Object, extenders: Object, dependencyDetection: Object…}
window.parent.justep.Bind.contextFor('mapPanel')
undefined
回复 支持 反对

使用道具 举报

发表于 2015-12-30 09:25:14 | 显示全部楼层
负暄 发表于 2015-12-29 20:40
window.justep.Bind
bind改成Bind有效,但是contextFor函数中的参数‘外层节点对象’ 有点不明白,是指 ...

你可以在.w中定义个div 写上id  比如是div
然后使用document.getElementByID('div') 得到这个节点对象
然后放到contextFor参数中,应该就行了
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

56

主题

370

帖子

963

积分

高级会员

Rank: 4

积分
963
QQ
 楼主| 发表于 2015-12-30 09:27:57 | 显示全部楼层
非常感谢版主梁小飞的指点,问题已解决。解决结果总结如下:
1、在调用map.html的父窗口mapActivity.w中,随便加一个div,方便调用。源码如下:
<div id="ContextForId"/>
2、在调用map.html的父窗口mapActivity.js中,随便加一个函数,为了测试。源码如下:
        Model.prototype.test = function(data){
                alert(data.a);
        };
3、在map.html文件中,在想调用父窗口的地方加入如下代码:
        var partenW = window.parent;
            var parentDiv = partenW.document.getElementById('ContextForId');                    //父窗口中定义的div
            var parentModel = partenW.justep.Bind.contextFor(parentDiv).$model;         
            parentModel.test({a:123});  //父窗口model中定义的函数
4、调用ok!
再次表示感谢!

评分

参与人数 1威望 +9 收起 理由
wgs7909 + 9 神马都是浮云

查看全部评分

回复 支持 反对

使用道具 举报

56

主题

370

帖子

963

积分

高级会员

Rank: 4

积分
963
QQ
 楼主| 发表于 2016-4-9 12:52:13 | 显示全部楼层
liangyongfei 发表于 2016-4-8 13:13
3.4以上的新版本中,第三步 第三行代码建议换成这种写法:
var parentModel = partenW.justep.Util.getMod ...

谢谢版主指点!
回复 支持 反对

使用道具 举报

14

主题

77

帖子

125

积分

初级会员

Rank: 2

积分
125
QQ
发表于 2016-4-21 10:53:10 | 显示全部楼层
楼主可以把源码分享一下吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-6-7 07:41 , Processed in 0.072918 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表