2016-11-26 5 views
0

私はAngularJS 1(+ Ionic + ui-router)シングルページアプリケーションを開発しています。とりわけ、このアプリはCRUDの従業員と企業を可能にします。AngularJS:別のビューで "pick-one"フィールドを編集する

「従業員の編集」ページで苦労しています。このページには姓と名のフィールドが表示され、従業員が働く会社を選択するボタンがあります。ボタンをクリックすると、既存のすべての企業をリストした新しいビューが開きます。ユーザーはそれを従業員に割り当てるために1つを選択し、元の画面(従業員編集)に戻り、会社の名前を表示(読み取り専用)することができます。

私の問題は、コントローラーがデータベースから従業員情報を読み込むことから始まるため、「従業員の編集」ビューに戻ったときにコントローラーが再ロードされ、姓と名字の変更が失われることです。

  1. ユーザーが

  2. ユーザーが最初に変わるのビューを

  3. 編集コントローラをロードし、従業員データのデータベースから編集従業員ビューを開き、移入:

    は何が起こる要約します名前を新しい値に変更します(「John」から「Allan」へ)

  4. ユーザーは「ch OOSE会社「ボタン

  5. 会社のリストビューが開き、そしてそれは、サービスを介してユーザーがリストに

  6. を会社を選択し、コントローラの店舗を企業

  7. のリストが表示され、」現在の会社"グローバル変数を使用して、従業員の編集ビューに戻ります。

  8. 編集コントローラが再び開始され、データベースからデータが再ロードされ、最初の名前がJohnに再読み込みされます。また、会社のグローバル変数を読み取ってその名前を表示します。

  9. 「アラン」への変更は

:-(失われた結果として、だから私の質問は次のとおりです。?編集のこの種を管理することをお勧めは何ですか

また、もし

btw、私は従業員の変更を保存することを望んでいませんが、私は従業員の変更を保存することはできません会社のリスト、私はユーザーは最後に編集内容を完全にキャンセルします。

多くのご協力ありがとうございます

+0

ユーザーが従業員の編集フォームから直接会社を選択できるようにするには、選択ボックスを使用します。 –

+0

あなたの答えをありがとう。これは実際に私が最初にやったことですが、増分検索を追加して、ユーザーに新しい会社を作成させてもらいたいと思います。したがって、GUIの設計上の理由から、私は別のビューを持つことを好むでしょう。他の提案はどうぞ??もう一度おねがいします(btwインクリメンタルサーチはselectで機能するかもしれませんが、そのための見事なイオンウィジェットはありません) – bfredo123

+0

編集社員ページから会社を選択するときは、その状態を保存してくださいフォーム)をサービスのフィールド内に配置します。会社のピックアップページからパックを受け取ったら、サービスに保存した状態から状態を復元します。会社を格納するためにグローバル変数を使用しないでください。それを同じサービスに格納するか、状態のパラメータとして渡します。 –

答えて

0

フォームの状態を維持するには、サービスを利用できます。保存されていない変更を含む編集フォームのスコープが破棄されると、このデータを保守するだけで保存されます。このサービスの内部では、ページの更新後にデータを保持するためにローカルストレージに保存することもできます。

しかし、より良い方法は、編集フォームで単純なドロップダウンを行うことです。あまりにも多くの情報がある場合は、モーダルを使用するか、それを好むことができます。

+0

ありがとう!あなたとJB Nizetの質問:コントローラーがロードされたとき、最初にロードされたときと次のときに区別する方法は? (最初に=データベースからデータをロードする必要があります;次回はtmpデータを取得する必要があります) – bfredo123

+0

@ bfredo123状態パラメータを使用します。これをすべて単一の状態で行い、ユーザ編集セクションと会社選択セクションを表示/非表示にすることもできます。 –

+0

このサービスをチェックするだけです。特定のIDのために未保存のフォームが含まれている場合はそれを使用し、それ以外の場合は - dbに要求します。しかし、提出後にサービスを無効にすることを忘れないでください –

0

あなたはこのような状況に対処することができますいくつかの方法があります:あなたはイオンを使用している言及したので

  1. は、会社のリストを使用Ionic Modalを表示する新しいビューを開くあなたが扱うことができるこの方法をinsted同じコントローラーのすべてが同じだからグローバル変数を保存する必要はありません
  2. あなたはui-routerの状態変更イベントを聞くことができます。従業員データページでは、元の状態が企業リストであるかどうかを確認できます。従業員の詳細を取得するためのAPIコール

私は使用することをお勧めしますIonic Modal

+0

ありがとう、私はこれらの提案すべてで、私は何かを働かせることができると思います! – bfredo123

関連する問題