????現(xiàn)遇到以下問題领突,我在使用iview框架結(jié)合vue制作后臺管理系統(tǒng)的時候,使用iview的table表格組件案怯,打算把公共表頭都寫在一個文件里面君旦,各個頁面按需引用它。
公共表頭的數(shù)據(jù)文件中
在某些頁面去使用它
這個時候,我使用table中的 render函數(shù)去綁定頁面方法的時候金砍,總是報錯局蚀,報not a function
報錯的情況,打印this
打印this之后發(fā)現(xiàn)this指向了window恕稠,而不是vue實例:
this指向的不是vue實例琅绅,所以一直找不到方法
網(wǎng)上給得答案太少了,然后我就想到一個很不推薦的辦法鹅巍,把調(diào)用這個表頭數(shù)據(jù)的頁面中千扶,把vue實例拋給window,我個人及其不推薦骆捧。
但是目前又無能為力澎羞。
方法如下:全局var一個變量,如selfs
全局var一個變量敛苇,如selfs
在此頁面vue實例妆绞,鉤子函數(shù)created中,將this拋給window接谨。
迫不得已這樣做
然后在回到表頭那個文件中摆碉,render函數(shù)里面打印this或者window,會發(fā)現(xiàn)有了個叫做‘selfs’脓豪,里面就是此頁面的vue實例:
window下面找到了vue實例
然后可以隨意調(diào)用了巷帝。
很笨的辦法,但是還算有效
后記:
? ??iview之前在table標簽中有一個‘:context=’這個屬性扫夜,是規(guī)定上下文的楞泼,這里存放對的this就可以改變被調(diào)用‘表頭數(shù)據(jù)’文件中的this指向了。不知為何后來被廢棄了笤闯;也有人說使用$refs方式堕阔,這種我不是沒有試過,但是沒起作用颗味。
????這種辦法我個人認為是很不規(guī)范的超陆,如果路過的大神有更好的解決方案,跪求大神不吝賜教浦马!