アンギュラーは初めてです。オブジェクトのリストを取得し、それらを1ページ目に表示するサービスを使用しています。次に、クリックされたオブジェクトに基づいて、次のページでタブヘッダーを設定しています。しかし、ページを更新している間、リストのスコープが失われ、タブヘッダーが例外をスローして、ページに情報が表示されません。 2番目のページを更新する場合でも、前の画面でどのオブジェクトがクリックされたかという情報を保持する方法はありますか?
Angularが初めてで、ミッションクリティカルではないプロジェクトで作業している場合、リモートサービスへの追加の呼び出しは世界の終わりではありません。
2番目のページを更新する場合でも、前の画面でクリックされたオブジェクトの情報を保持する方法はありますか?
アプリでルーティングを使用していますか?
例を参照してください: http://plnkr.co/edit/Svg4Po13hMq7WxzNwKDc?p=preview
app.controller("main", function($scope) {
$scope.items = [1,2,3,4];
});
app.controller("detail", function($scope, $routeParams) {
$scope.myvalue = $routeParams.id;
});
var app = angular.module("app", ['ngRoute']);
app.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'main',
controller: 'main'
})
.when('/detail/:id', {
templateUrl: 'detail',
controller: 'detail'
})
.otherwise({
redirectTo: '/'
});
});
詳細ページを更新すると、状態が記憶されます。その後、サービスにデータを要求できます。
いくつかのanglejsアプリがありますか?理論的には、単一のHTMLファイルとパーシャル/コントローラーが必要です。使用するデータをファクトリー(シングルトン)またはangularJSキャッシュに保存できます。複数のHTMLページ間を移動する場合は、ローカルストレージまたはリロードを使用できますサーバーからのデータ。
便利なリンク:
$ cache
https://docs.angularjs.org/api/ng/service/ $ cacheFactory
ローカルストレージ:
このようなシナリオを処理するためのベストプラクティスは、angular service + localstorageの組み合わせを使用することです
また、データがURLの単なるIDである場合は、@ Michal Stefanowによる回答も問題ありません。
リンクの支援