uniapp+arcgis系列(三):逻辑层和视图层RenderJS之间的相互通信
由于地图是加载在视图层的,所以掌握视图层和逻辑层双向通信的方法是必须的。
一、视图层RenderJS主动和逻辑层通信
这里相对简单,需要在renderJS中调逻辑层的方法,通过特定的方式直接调就行了。
首先在逻辑层中定义一个给视图层调用的方法:
然后在业务层调用这个方法:
this.$ownerInstance.callMethod('methodForRenderJs',{val1:"参数1",val2:"参数2"});
控制台输出:
二、逻辑层主动和视图层RenderJS通信
实话实说这个有点抽象。
因为逻辑层是不能直接主动通信视图层,只能向视图层添加一个属性,并且在视图层为这个属性绑定一个变化事件,逻辑层通过对这个属性值动手动脚,来达到向视图层传递数据、调用视图层的方法的效果。
所以划重点:逻辑层离了view是没办法和视图层通信的!!!离开了这个页面view作废!!!通信作废!!!
如果离开当前页面以后,仍然需要arcgis在后台一直持续不停地处理数据,用这种方法是行不通的!!!放弃arcgis罢。
简单概括下:
在视图层的view,给view绑定一个属性msg,再绑定一个msg的变化事件。
像这样:
- valueChangeSign 是定义在逻辑层中的data{return{}}里面的属性
- myMapViews是逻辑层的module