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








相关