AngularJS アプリの検索フォームを作成しています。ユーザーが現在の検索パラメーターを表す永続的なブックマークを作成できるようにしたいと考えています。
Google フライトはこれを非常にうまく行っています。検索入力の 1 つを変更するたびに、URL が更新されます。
注: ngRoute モジュールを使用せずにこれを達成できるかどうかを確認しています。
にカプセル化されたすべての検索パラメーター データがありSearchParametersService
ます。また、モデルを URL との間でシリアル化/逆シリアル化する関数を簡単に作成できますが、AngularJS アプリ内のどこにこのロジックを配置する必要があるのでしょうか?
ディレクティブを作成する必要がありますか? だったらbodyタグにつければいいのでは?それとも、これは別の場所に行くべきですか?
参考になる場合は、SearchParametersService
私が使用しているものを次に示します。
app.factory("SearchParametersService", function (SearchOptions) {
return {
searchType: _.first(SearchOptions.searchTypes),
cabinClass: _.first(SearchOptions.cabinClasses),
fareTypes: _.filter(SearchOptions.fareTypes, function (option) {
return ~_.indexOf(["NEG", "PUB"], option.value);
}),
numberOfStops: 1,
adults: 1,
children: 0,
outboundOrigin: null,
outboundDestination: null,
outboundDate: null,
inboundOrigin: null,
inboundDestination: null,
inboundDate: null,
carriers: []
};
})