在 AngularJS 中搜索表单和 URL 参数

Search forms and URL parameters in AngularJS

本文关键字:URL 参数 表单 搜索表 AngularJS 搜索      更新时间:2023-09-26

我有一个搜索,有多个可选字段,我觉得我过去没有正确处理这个问题,想知道如何正确处理这个问题,以便在用户刷新页面时重新加载结果通过搜索表单。

我有一个表单,人们可以用来搜索客户,我的用户可以按类型姓名帐号进行搜索

类型是必填字段

名称和 帐号是可选字段。

我可以使用$routeProvider来配置我的路由,如下所示:

.when('/clientSearch/:type/:accountNumber?/:name?', {

但是,如果帐号姓名是可选的,我如何区分是否只传递了两者中的一个?某些表单具有多个可选的数字/字符串字段。

使用$location.search()我可以设置 URL 参数,例如:

$location.search( {type: type, accountNumber: accountNumber, 'name': name} )

哪个是首选方法,来错了?

如何正确处理搜索表单,并在刷新页面时允许再次获取相同的结果?

通常使用查询参数。 在角度中,它们被称为search参数:

请参阅 https://docs.angularjs.org/api/ng/service/$location

并像这样使用:

// http://example.com/#/some/path?foo=bar&baz=xoxo
// To get:
$location.search()  // => {foo: 'bar', baz: 'xoxo'}
// To set:
$location.search('foo', 'yipee') // => {foo: 'yipee', baz: 'xoxo'}

对于您的问题:

哪个是首选方法,来错了?

首选方法肯定是使用查询/搜索参数

如何正确处理搜索表单,并在刷新页面时允许再次获取相同的结果?

获取参数并定义控制器中所需的任何内容。 如果需要可用于视图的参数,可以执行以下操作:

$scope.searchParams = $location.search()