2014-12-05 120 views
0

假設我們使用後退按鈕事件(Android的具體),並在控制器A,將其固定,像這樣:情境感知科爾多瓦事件

app.controller('aController', ['$scope', function($scope){ 

    function LogicA(){ 
    //Logic A 
    } 
    document.addEventListener("backbutton", LogicA, false); 


}]); 

而且我們希望在一個單獨的控制器做不同的邏輯:

app.controller('bController', ['$scope', function($scope){ 

    function LogicB(){ 
    //Logic B 
    } 
    document.addEventListener("backbutton", LogicB, false); 


}]); 

處理這個問題的正確方法是什麼,以便主動控制器的邏輯能夠支持backbutton事件?

回答

0

我個人用一種方法和一個全局變量來處理這個問題。

實施例:

var backState = false; 

function backButton() { 
    if(backState === 'LogicA') { 
     //do logic a 
    } 
    elseif(backState === 'LogicB') { 
     //do logic b 
    } 
    else { 
     //some default action if needed 
    } 
} 

document.addEventListener("backbutton", backButton, false); 

然後根據需要我可以改變的backState值並直接影響到後退按鈕的功能。

+0

我已經標記爲接受,因爲我決定走這條路。我喜歡你的代碼組織和清晰度。 – egekhter 2014-12-05 17:34:49

+0

我喜歡使用它,因爲您甚至可以在一個視圖中多次更改狀態。例如:默認爲'返回上一個視圖',如果顯示一個模態,後退按鈕可以被設置爲關閉模態,那麼在模態被解除之後,'返回上一個視圖'的默認功能返回原位。 – 2014-12-05 17:59:31

+0

我喜歡它。我應該檢查你的工作。 – egekhter 2014-12-05 18:17:06