2016-06-23 9 views
0

質問と回答を検索しましたが、異なるアプローチ(例:$('#element').popover('hide'))を試みましたが、まだESCボタンでブートストラップポップオーバーを閉じることができません。角度UIブートストラップポップオーバー - ESCでポップオーバーを閉じる方法

私は(誤って)これは

$(document).keyup(function (event) { 
    if (event.which === 27) { 
     alert("esc"); 
     $scope.isOpen = false; 
    } 
}); 

を動作するはずと仮定しますが、そうではありません。

a plunkerを用意しました。

ありがとうございます!

+0

を適用強制されますよう$ダイジェストあなただけのESC機にそれを閉じしますか? –

+0

ポップオーバーを閉じる方法(外をクリックする、ボタンをクリックするなど)が機能しています。 escプレスでの締めはここで十分です、ありがとうございます。 – davidpodhola

+0

プランナーが動作していることを確認してください。 –

答えて

1

アランは変化が角度によって検出されないように、これは消化サイクルの問題に関連して述べたように。ここで

作業plunkerです:http://plnkr.co/edit/M3F7dmmLBrtGdBCICdLm?p=preview

$スコープを使用することを確認し、それが自動的に$が

$scope.save = function() { 
    $scope.isOpen = false; 
    $scope.$digest(); 
}; 

$(document).keyup(function (event) { 
    if (event.which === 27) { 
     $scope.save(); 
    } 
}); 
1

まず、ロジックをコントローラに移動します。次に$scope.$apply()を追加して、$digestのサイクルを強制します(jQueryは角度の組み込みのメカニズムではなくサードパーティ製です)。このよう

コントローラ

$(document).keyup(function (event) { 
     if (event.which === 27) { 
      $scope.isOpen = false; 
      $scope.$apply(); 
     } 
    }); 
関連する問題