私はWeb APIサーバーを開発し、最近Angular-jsとtypescriptで開発されたクライアント側の開発も開始しました。typescriptを使用した角度 - コントローラまたはサービスにデータを保存する必要がありますか?
クライアントサイドコードの設計に関してわからないことがあります。
たとえば、アイテムのリストを表示するビューがあり、このビューのコントローラは、ボタンがクリックされるたびに何度も作成されます。それは私には思える、このビューには、項目のリストを提示し、したがって、この配列は、コントローラ内のHTTP GET throguhそれが作成されるたびにreceievedされ、ビューは
ng-repeat="item in vm.items"
しかし持っている私は、上のこのリストを保存する場合私の理解からのみ、クライアントごとに一度作成されたサービス、私はサービスが作成されたときに一度、単一のGETリクエストを使用して、このようなビューでそれを使用することもできます項目のリストに
ng-repeat="item in vm.service.items"
と更新されますシグナルだけの使用を通して起こります。
2番目のアプローチに欠陥がありますか?今は私がそうしない理由を見ることができないからです。
詳細を少し書きましたか?現在、私はサービスctorで何を持っています:$ http.get( "..")。success(function(data){ListService.service.items = data;});違うの? –
私はコンストラクタの代わりにゲッターの値を解決し、解決されたオブジェクトの代わりに約束を返します。 –
ああ、あなたはそれを怠惰な初期化として機能させましたか?しかし、なぜ私は約束を返す必要がありますか?サーバーへのリクエストが成功した場合、私は上記のように、コントローラで何も処理せずにリクエストを行ったサービスの配列にデータを保存したいだけです。バインディングはサービスに保持されている配列に直接行われます –