0

文档上是这样说的:

如何在 weex-html5 组件或模块中分发全局事件?只需在文档元素上分派事件:

var evt = new Event('some-type')
evt.data = { foo: 'bar' }
document.dispatchEvent(evt)

我这样使用行不通

  watch: {
    'speces' (val) {
        var evt = new Event('goods-update')
        evt.data = { name: 'speces', data: JSON.parse(JSON.stringify(val)) }
        document.dispatchEvent(evt)
    }
  },

2个回答

0

https://weex.apache.org/cn/re...
可以看这部分文档
我写了一个简单的示例

<script>
var globalEvent = weex.requireModule('globalEvent');
globalEvent.addEventListener("goods-update", function(e) {
  console.log("get event:"+JSON.stringify(e))
});
export default {
  data: {
    target: 'World'
  },
  methods: {
    update: function(e) {
      // 触发应该是不能放在这里的,应该是web,ios,andorid都要写一个module来进行各自的触发
      // 该段代码应该只能在web端运行,ios&android运行应该会报错
      var val = {"x":"2"}
      var evt = new Event('goods-update')
      evt.data = { name: 'speces', data: JSON.parse(JSON.stringify(val)) }
      document.dispatchEvent(evt)
    },
  }
}
</script>
0

在 native扩展一个模块。
我们是在native扩展了一个通知模块,weex,vue 任何页面都可以接受,发送通知进行全局的事件通讯。

撰写答案