是否可以跳过可选参数并移至Angularjs中的下一个可选参数?

时间:2015-10-15 22:18:45

标签: javascript angularjs angular-routing

我正在为我的学校创建一个Web应用程序。 Angularjs对我来说很新,我上周六才开始使用它。

我正在尝试使用可选字段和仅一个必填字段创建高级搜索表单。当用户提交表单时,我将用户重定向到将具有表单值作为参数的结果页面,并且该页面将通过ajax提供搜索结果。我知道在Angularjs路由中,我们可以设置可选参数,这非常好。

根据我的理解,获取url参数取决于参数的位置。

EG。以下是我的路由代码:

 .when("/results/:school_year/:name?/:age?/:quote?", {templateUrl: "pages/results.html", controller: "SearchCtrl"})

正如大家们所见,:school_year是唯一的必修参数。剩下的是可选的。这意味着,如果我的网址为http://example.com/#/results/2012/Kyle/18/Test

$routeParams.school_year = 2012
$routeParams.name = "Kyle"

这是问题,我的表单有可选字段,因此这意味着它很可能:name或任何其他可选参数在提交时没有数据。我想到的一个选项是在参数没有数据的url中添加一个双斜杠(//)。我这样做是通过检查可选参数是否为空,或者它们是否有数据。如果它们为null,我将//添加到url,如果不是,则添加/和参数。这是动态构建重定向URL。 例如

http://example.com/#/results/2012//18/Test

这需要进行大量比较而且不干净。有没有更清洁的技巧或方法来实现这一目标?

0 个答案:

没有答案