美文网首页
iview中的render函数由于从别的组件中引入,所以this

iview中的render函数由于从别的组件中引入,所以this

作者: 传奇狗 | 来源:发表于2018-08-15 14:36 被阅读1009次

        现遇到以下问题,我在使用iview框架结合vue制作后台管理系统的时候,使用iview的table表格组件,打算把公共表头都写在一个文件里面,各个页面按需引用它。

    公共表头的数据文件中 在某些页面去使用它

    这个时候,我使用table中的 render函数去绑定页面方法的时候,总是报错,报not a function

    报错的情况,打印this

    打印this之后发现this指向了window,而不是vue实例:

    this指向的不是vue实例,所以一直找不到方法

    网上给得答案太少了,然后我就想到一个很不推荐的办法,把调用这个表头数据的页面中,把vue实例抛给window,我个人及其不推荐。

    但是目前又无能为力。

    方法如下:全局var一个变量,如selfs

    全局var一个变量,如selfs

    在此页面vue实例,钩子函数created中,将this抛给window。

    迫不得已这样做

    然后在回到表头那个文件中,render函数里面打印this或者window,会发现有了个叫做‘selfs’,里面就是此页面的vue实例:

    window下面找到了vue实例

    然后可以随意调用了。

    很笨的办法,但是还算有效

    后记:

        iview之前在table标签中有一个‘:context=’这个属性,是规定上下文的,这里存放对的this就可以改变被调用‘表头数据’文件中的this指向了。不知为何后来被废弃了;也有人说使用$refs方式,这种我不是没有试过,但是没起作用。

        这种办法我个人认为是很不规范的,如果路过的大神有更好的解决方案,跪求大神不吝赐教!

    相关文章

      网友评论

          本文标题:iview中的render函数由于从别的组件中引入,所以this

          本文链接:https://www.haomeiwen.com/subject/vvqwbftx.html