猿问
下载APP

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

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中的方法呢?

繁华开满天机
浏览 466回答 2
2回答

慕运维8079593

推荐一种思路,首先将将你使用的golbalEvent定义为Promise,比如:const event = new Promise((resolve, reject) => {&nbsp; &nbsp; const globalEvent = weex.requireModule('globalEvent');&nbsp; &nbsp; globalEvent.addEventListener("loginStatus", function (e) {&nbsp; &nbsp; &nbsp; &nbsp;let obj = {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pageNo: 1,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;callBack: ()=>{}&nbsp; &nbsp; &nbsp; &nbsp;};&nbsp; &nbsp; &nbsp; &nbsp; resolve(obj);&nbsp; &nbsp; });})定义好后,可以使用mixin将该对象加入到Vue对象中(如果使用的是Vue进行的开发),接下来就可以在每个页面通过this获取该Promise然后做相应的操作了。

潇潇雨雨

在mounted中写:mounted: function () {&nbsp; var self = this;&nbsp; globalEvent.addEventListener('loginStatus', function (e) {&nbsp; &nbsp; self.getAnswerListData(1, function(state) {});&nbsp; });},
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答