我正在为 AngularJS 应用程序构建一个搜索表单。我希望用户能够创建一个代表他们当前搜索参数的持久书签。
谷歌航班在这方面做得很好。每当您更改其中一个搜索输入时,都会更新 URL。
注意:我想看看这是否可以在不使用 ngRoute 模块的情况下完成。
我将所有搜索参数数据封装在一个SearchParametersService
. 并且可以轻松地创建一个函数来序列化/反序列化我的模型到/从 url,但我想知道这个逻辑应该存在于 AngularJS 应用程序中的什么地方?
我应该创建一个指令吗?如果是这样,我应该把它附加到身体标签上吗?还是应该去别的地方?
如果它有帮助,这是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: []
};
})