:と
function($scope){
$scope.changePage = function (type) {
if(type==="park"){
$scope.parks = asynLoadFunctionToGetParks();
}else{
if(type === "restaurants"){
/* same as below */
}
}
};
}
そして、あなたのビュータイプを変更しますこんにちは世界 "のバラエティで、コントローラから直接データを取得することを示しています。問題は、すぐに使えるAngularJSは実際にはビジネスロジックレイヤー自体を持たないということです。このようなレイヤーを追加したほとんどの人は、あまりにも忙しすぎて例を挙げることはできないと思います。
私はこれを行う方法は、あなたのニーズに応じて、ユーザーがアプリをナビゲートするときに、ランブロックの前で、または遅れて、さまざまなデータタイプのすべてを取得できる「マスター」サービスを作成することです。次に、ルート解決(解決プロパティ)の該当するサブコレクションへの参照、またはディレクティブの場合の分離スコープを指定します。
コントローラは、masterService.getCollection($scope.collectionName)
などを呼び出すことでデータを要求できますが、その場合は、masterService
にまだその特定のコレクションがない可能性があるという問題が発生し、コントローラを混乱させる必要がありますあたかもそれを処理するコントローラの責任であるかのように、すべての約束の解決策を取り入れています。
ビューでmasterService.collections[$scope.collectionName]
にバインドすると、コントローラは$ scopeまたはcontrollerAs変数のコレクションのみを公開し、masterServiceは引き続きデータを取得して使用可能にすることができます。
はい、できます。それをやってみて、具体的な問題がある場合はここに戻ってください。 –