2017-07-30 7 views
1

私は角の初心者ですので、私に同行してください。「詳細」ページにアクセスしている間に「リスト」ページのデータを保持する

私はしばらくの間これをやろうとしてきましたが、その方法を理解することはできません。

私はそうのように、3(1抽象親)の状態を持っている:

.state('recipes', { 
    url: '/recipes', 
    abstract: true, 
    template: '<ui-view/>' 
    }) 
    .state('recipes.listing', { 
    url: '/listing', 
    templateUrl: '/modules/recipes/client/views/recipes.listing.html', 
    controller: 'RecipesController', 
    controllerAs: 'vm', 
    data: { 
     pageTitle: 'Recipes' 
    } 
    }) 
    .state('recipes.details', { 
    url: '/details', 
    templateUrl: '/modules/recipes/client/views/recipes.details.html', 
    controller: 'RecipesDetailsController', 
    controllerAs: 'vm' 
    }); 

リストページから、ユーザーは、彼らが詳細ページをご覧リストから選択すると...から選ぶことができますリストを持っています経由で$ state.go()。今すぐ "戻る"ボタンを押すと、リストページに戻りますが、クエリされたすべてのデータは消えています。私が考えることができる唯一の方法は、ページをビューに変換して1つの状態に挿入して表示/非表示にすることですが、これは角度的な方法ではないと感じました。

ありがとうございます。

+0

は、ユーザーがこれは私が遭遇してきた別の解決策である@charlietfl – charlietfl

+0

返したときにビューを複製するために必要とされるものは何でも格納するサービスを使用します。私はそれが別の良いルートかもしれないように感じています。理由は分かりませんが、より洗練された「角度のある」解決策を望んでいました。 –

+0

これは角度の方法です。ビューを終了すると、コントローラインスタンスはなくなりますが、サービスはシングルトンです – charlietfl

答えて

3

ルートをRESTfullで使用することをお勧めします。例えばあなたの出品ページのルートが使用できます

.state('recipes', { 
    url: '/recipes', 
    templateUrl: '/modules/recipes/client/views/recipes.listing.html', 
    controller: 'RecipesController', 
    controllerAs: 'vm', 
    data: { 
     pageTitle: 'Recipes' 
    } 
}) 

と詳細ルートのために:

.state('recipes.details', { 
    url: '/recipes/:recipeID/details', 
    templateUrl: '/modules/recipes/client/views/recipe.details.html', 
    controller: 'RecipesDetailsController', 
    controllerAs: 'vm' 
    }); 

そして、あなたのリストのページでは、アイテムの詳細ページの各に到達するために、IDベースのリンクを追加することができます。あなたがテーブルを使用している場合は、あなたのテーブル本体はこのような何かを見てする必要があります。

<tbody> 
    <tr ng-repeat= "recipe in recipes"> 
     <td><a ng-href="#!/recipes/{{::recipe._id}}/details"></a></td> 
    </tr> 
</tbody> 
+0

これがどのように問題を解決するのか分かりません。これは単純にページを再構成したようです。私はこの問題が解決したとは確信していません –

+0

これは、リストから項目を選択すると、その項目の詳細ページに移動します。これは、選択された項目に対して一意に経路を構築できるためです。 (私が思うより角張った方法) –

関連する問題