私は Angular の初心者で、標準コントローラーと ngResource を使用して記述された単純な CRUD アプリを適応させて、1.5 で導入されたコンポーネントを使用しています。これまでに見つけたドキュメントやリソースで、次の方法について説明しているものはありません。
- 新しいアイテムをゼロから作成する
- ngResource と統合する
ですから、どのように進めるのが最善かについて、誰かがいくつかの指針を与えることができるかどうか疑問に思っています。
私の既存のアプリには、リソース エンティティを宣言する単純なファクトリと、それを実行する単一のコントローラーがあります。
- リソースの新しいインスタンスをインスタンス化します。
$scope.newEntity = new Entity();
$scope
バックエンドから取得したリソースのリストを に入力します。Entity.query(function (data) { $scope.entities = data; });
- リソースを削除、更新、およびバックエンドに保存するための関数をいくつか提供します。
HTML には、動作するフォームと$scope.newEntity
、新しいエンティティをバックエンドに保存するコントローラー保存メソッドがあります。ng-repeat
に保存されているエントリを一覧表示するもあり、いくつかの編集と削除を実行するための がいくつか$scope.entities
追加されています。ng-click
私が今やりたいことは、リストにインライン編集を実装することです。既存のアプローチでこれを実行できることはわかっていますが、エンティティ編集コードの既存のエンティティ作成フォームにあるフォーム検証機能を複製せずにきれいに再利用したいと考えています。コンポーネントは、私の(確かに経験の浅い)目には自然にフィットするように見えます。
コンポーネント ベースのアプローチでは、https://docs.angularjs.org/guide/componentのExample of a component treeentity-list
のドキュメントに従い、 andコンポーネントを作成しましたentity-detail
。on-delete
これらは今のところ問題なく動作しており、とon-update
イベントを接続する方法を理解できると思います。私が理解できないのは、on-create
イベントへのアプローチ方法です。
作成イベントを処理するために、既存の単純なフォームで完全に別のコントローラーを使用する必要がありますか? その場合、既存のリストを自動的に更新するにはどうすればよいですか? その作成イベントはリスト コントローラーに伝播しますか?
または、既存のリスト コントローラーに何か不足していますか? それとも、エンティティの作成は詳細コントローラーの特殊なケースですか?
Angular 2 にも対応できるようにしたいので、Angular コンポーネントと ngResource を使用してこれを実装する方法に関する情報を特に探しています。まったく異なるアプローチを使用してこれを達成するか、コンポーネントなしで HTML コードを再利用する方法。ありがとう!