結果のリストを表示するアプリケーションを実装し、ユーザーが行を選択して比較し、それらに関する追加データを表示できるようにしました。
私が使用angular ui route
していて、2 つのビューとそれぞれに 2 つのコントローラーがあるため、最初のビュー (比較ビューに移動する前にすべての結果がある場所) に情報を保持するための最良の方法を探しています。ユーザーが最初のビューに戻ったとき。
これまでのところ、私が試したのは使用です$localstorage
が、最初のビューには、ユーザーが検索条件をフィルタリングできるフォームがあり、呼び出し<select></select>
によって読み込まれるフォームもあります。 ajax呼び出しが実行されていないため、フォームの詳細を設定します。ユーザーがプレビューに戻った場合にのみ、ローカルストレージを常に保持したくありません。ajax
$localstorage
select input
以下に、 の設定を示しますangular route ui
。
.state('deposit', {
url: '/deposit',
templateUrl: './app/components/deposit/index.html',
views: { "" : { templateUrl: './app/components/deposit/index.html' },
"search@deposit": { templateUrl: "./app/components/deposit/search.html",
controller: "DepositSearchController"}
}
})
.state('depositcomparison', {
url: "/deposit/comparison",
params: {
ids: null,
depositSearchData: null
},
templateUrl: './app/components/depositComparison/depositComparisonView.html',
controller: 'DepositComparisonController'
})
比較ビューから結果ビューに戻るときにのみデータを保持する適切な方法は何ですか?
よりも良い方法はありlocalstorage
ますか?
ありがとう。
/************更新************/ /************ ajaxの問題************ **/
選択のデータを取得します。
//...
$http.get(window.serviceUrl + '/api/institute').
success(function(data){
$scope.institutes = data.content;
$scope.institutes.push({id: '0', name: 'All'});
$localstorage.setObject('instituteData', $scope.institutes);
}).
error(function(data){
console.log('Error');
});
//..
チェックlocalstorage
:
//..
angular.element(document).ready(function () {
if ($localstorage.getObject('instituteData').length !== 0) {
$scope.institutes = $localstorage.getObject('instituteData');
}
//else call the ajax
//..
});
HTML:
<label for="forinstitute">Account Type</label>
<select id="instituteValue" class="form-control" ng-model="institute.id">
<option value=""> Select account</option>
<option ng-repeat="institute in institutes | orderBy:'name'" value="{{institute .id}}">{{institute .name}}</option>
</select>
/**************************************************** ********/
解決策になる可能性があります$watch
??