2016-01-12 51 views
0

我創建了一個類來管理與我的應用程序的主要UI交互。在構造函數中,我想連接導航li的click事件。有人可以幫我弄清楚如何正確的範圍這些對象?如何訪問es6類構造函數中的click事件的方法?

class app { 
    constructor() { 

     $('.nav li').on("click", function() { 
      // I want to call changeView but pass in the data attribute from the li as the view param 
      // ex. changeView($(this).data('view')); 
     }); 

    } 

    changeView(view) { 
     console.log(view); 
    } 
} 
+0

現在ES2015! ; D –

+0

ES6中的問題與ES5中的問題沒有什麼不同。 – Bergi

+0

問題是一樣的,但現在我們有箭頭函數的解決方案是不同的。我們現在有一個優雅的解決方案來解決「這個」範圍問題。 – dhysong

回答

3

使用箭頭功能這將工作:

$('.nav li').on("click", e => { 
    this.changeView($(e.target).data('view')); 
}); 
+0

這正是我正在尋找的。謝謝! – dhysong

0

我相信如果你使用ES6箭頭功能

class app { 
    constructor() { 
     $('.nav li').on("click",() => { 
      // I want to call changeView but pass in the data attribute from the li as the view param 
      this.changeView($(this).data('view')); 
     }); 
    } 

    changeView(view) { 
     console.log(view); 
    } 
} 
+0

這將不起作用,因爲'changeView'沒有在任何地方定義。 –

相關問題