テスト アプリケーション バックエンドのコードをリファクタリングした後に問題が発生しました。テストには質問と回答があり、各質問には複数の回答があり、そのうちの 1 つだけが正解です。
いくつかのデバッグの後、すべてが正常に機能しているように見えますが、ロジックを管理するすべての質問と回答は 1 つのコントローラーに配置されていました。ネストされたコントローラーを分離するように回答ロジックを移動した後、この問題に固執しました。さまざまな方法を試しましたが、どれも役に立ちませんでした。
目標は、Angular UI ツリー (例 #4 - グループとカテゴリ) を Angular UI Bootstrap Modal と結合することです。
設計上、質問と回答の追加と編集はモーダル ウィンドウで行われます。テンプレートは個別に配置されているため、質問と回答ごとに繰り返されることはありません。提供されたデータが有効でない場合、検証エラーが表示されます。それ以外の場合は、成功アラートが表示され、すべてのフィールドがクリアされ、デフォルトの状態に戻ります (モーダル ウィンドウ内で発生するすべてのことは、開いたままになり、[キャンセル] を押すことによってのみ閉じることができます。 X ボタンまたはキーボードの Esc ボタン)。
モーダル ウィンドウから更新する必要がありQuestionsCtrl $scope.questions
ます (トリガー ボタンはモーダル ウィンドウのテンプレート内にあります)。「追加」ボタン$scope.questions
を押すとスコープが更新され、ui.tree もバックグラウンドで更新されます。成功アラートまたは検証エラーは表示されず、フォーム フィールドはクリアされません。繰り返しクリックしても、実際の関数が再度呼び出されることはありません (したがって、1 回だけ実行されます)。
モーダルウィンドウはありませんが、ネストされたコントローラーを追加すると正常に機能します。
plunkを作成し、冗長なコードをすべて削除したので、問題に集中しやすくなりました。必要に応じて、さらにコードを提供できます。たとえば、plunk の結果はconsole.log
1 回だけ表示されます。