をリフレッシュしていない私はng-class
とdiv
セット内部form
とブートストラップモーダルを持っている:モーダルがロードされるとAngularJS:NG-クラスのブートストラップモーダル再オープンし
<div id="modalNewOrder" class="modal fade" data-modalName="order" role="dialog" ng-controller="NewOrderController as NewOrderCtrl">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close pull-left" data-dismiss="modal">X</button>
<h4 class="modal-title">
New order
</h4>
</div>
<div class="modal-body">
<div ng-class="NewOrderCtrl.position">
<form>
// input text here
</form>
、そのNewOrder.positionは、その設定されますcssを中心にする。フォームが処理されると、NewOrder.positionがtopに更新され、その結果がその下に表示されます。
問題点:モーダルを再オープンしたときに、NewOrder.positionが中央にリセットされるようにします。ただし、NewOrder.positionをリセットしても、ng-classが更新されていないようです。それ、どうやったら出来るの?
私は私のコントローラでこれを使用していますが、更新するために働いていないそのNGを-クラス:
$("#modalNewOrder").on("hidden.bs.modal", function() {
$(this).find('form')[0].reset();
self.clearQuery();
self.position = "mycss-position-center";
});
***** ***** UPDATE
Narenの提案と実験後ちょっと、コードを更新しました。私のHTMLでは、私が持っている:
<div ng-class="{'mycss-position-top' : NewOrderCtrl.top, 'mycss-position-center' : !NewOrderCtrl.top}">
と
<form ng-submit="processing()">
そして、私のコントローラでは、私が持っている:
var self = this;
self.top = false;
$("#modalNewOrder").on('shown.bs.modal', function() {
self.top = false;
});
$("#modalNewOrder").on("hidden.bs.modal", function() {
self.top = false;
});
self.processing = function(){
self.top = true;
};
問題は今ではモーダルの最初の再オープンでありますself.topは "on show"機能が処理されても "true"と評価され、console.logに "false"が表示されます。モダルをもう一度閉じてもう一度開いた場合にのみ、それは間違いになります。
* UPDATE *
提案された解決策は、働いていました。この最後の間違った動作を引き起こしていた別の場所で構文エラーが見つかりました。
モーダルを再度開いたとき、私はfalseにプロセスをリセットする方法は? –
まあ、おそらく私は私の "隠す"機能にリセットを挿入しようとすることができます...私は試してみます –
私は元の "隠す"機能でそれをリセットしなければなりませんでしたが、ありがとうございます –