为了账号安全,请及时绑定邮箱和手机立即绑定

Weex中使用globalEvent,如何调用methods中的方法?

Weex中使用globalEvent,如何调用methods中的方法?

繁华开满天机 2018-10-12 18:29:41
Weex中使用globalEvent,如何调用methods中的方法?代码如下:<script>var globalEvent = require('@weex-module/globalEvent');globalEvent.addEventListener("loginStatus", function (e) {    console.log("loginStatusssa:"+e.loginStatus);    this.getAnswerListData(1, function(state) {});});module.exports = {    ...省略部分代码...        methods: {         getAnswerListData: function(pageNo, callBack) {            var that = this;            stream.fetch({                methods: 'GET',                url: 'xxx',                type: 'json',            },function(res) {                        })        },    }}</script>具体代码就是上面这样,其中globalEvent中的this.getAnswerListData,这个似乎不能用this来调用,该如何嗲用methods中的方法呢?
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

推荐一种思路,首先将将你使用的golbalEvent定义为Promise,比如:

const event = new Promise((resolve, reject) => {

    const globalEvent = weex.requireModule('globalEvent');

    globalEvent.addEventListener("loginStatus", function (e) {

       let obj = {

           pageNo: 1,

           callBack: ()=>{}

       };

        resolve(obj);

    });

})

定义好后,可以使用mixin将该对象加入到Vue对象中(如果使用的是Vue进行的开发),接下来就可以在每个页面通过this获取该Promise然后做相应的操作了。


查看完整回答
反对 回复 2018-10-21
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

在mounted中写:

mounted: function () {

  var self = this;

  globalEvent.addEventListener('loginStatus', function (e) {

    self.getAnswerListData(1, function(state) {});

  });

},


查看完整回答
反对 回复 2018-10-21
  • 2 回答
  • 0 关注
  • 1235 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信