1

データベースにデータを追加するモーダル ウィンドウにフォームがあります。追加が成功したら、$route.reload() 関数を呼び出して基になるページを更新していますが、モーダル ウィンドウは表示されたままです。

$scope.add = function() {
      $http.post('/api/contact', $scope.form).
        success(function(data) {
          $scope.showModal = false;
          $route.reload();
        });
    };

モーダルは、標準の angularjs-ui モーダルです。

<div modal="showModal" close="close()" options="opts"> etc </div>

コントローラーの先頭に追加しようとし$scope.showModal = false;ましたが、それも役に立ちませんでした。

plnkr のコードは次のとおりです。

http://plnkr.co/edit/xz6gJRTBisVCeM0gNLx6?p=preview

オプションをコメントアウトすると$route.reload()リスト内の項目が更新されることは承知していますが、私のアプリではデータベースに書き込みを行っているため、DB を再クエリする必要があるため $route.reload が必要です。 .

4

1 に答える 1

2

$route.reload() を適用する前にタイムアウトが必要です。これは、ブラウザがビューを更新する前に起動しようとするためです。これは動作します: http://plnkr.co/edit/E7oraQ?p=preview

また、角度のないものを扱っていない限り、DB に書き込むためだけにリロードする理由はありません。コントローラー内で再クエリできるはずです。

于 2013-07-18T13:42:12.530 に答える