我正在为AngularJS应用构建一个搜索表单。我希望用户能够创建代表其当前搜索参数的持久书签。
Google Flights做得非常好。每当您更改其中一个搜索输入时,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: []
};
})