ionic中Modal是一个内容面板,可以临时越过用户的主视图,我们通常用于选择或编辑一个项。当然我们也可以用来加载百度地图,从地图中选择坐标,那是十分的好用。
首先,我们都知道ionicModal使用的时候需要在controller中新建,再.show()出来,但是问题来了,在我第一次进入这个controller对应的页面的时候,新建Modal,然后展示,一切没问题,但是当后面再进入这个controller对应的界面的时候,同样新建了Modal,但是怎么show都显示不出来,纠结了好久,各种百度也没找到问题原因,然后自己看DOM文档变化…
这是第一次进入百度地图Modal的截图:
这是第二次进入百度地图Modal的截图:
将两个div展开之后发现竟然都是百度地图的Modal,只是其中一个有初始化出的百度地图界面,另外一个并没有。也就是说第一次进入controller新建的Modal并没有在DOM文档中抹去!默默去ionic中文网找把Modal从DOM文档中删掉的方法~
看到这一句…只怪自己当时没认真看啊:
所以当Modal不再使用的时候,一定要在切换页面之前,在对应的controller中把Moda给remove掉:
//退出采集界面
var exitCollect = function(){
//离开页面前,清除掉所有的modal缓存
bMapModal.remove();
$state.go("taskDetails",{
task:$stateParams.task
});
};
.hide()仅仅是在页面中把对应的Moda的样式设置成隐藏,如果不进行remove,DOM文档中的Moda实例会越来越多,最终有可能造成页面崩溃。