我正在为我的学校创建一个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
这需要进行大量比较而且不干净。有没有更清洁的技巧或方法来实现这一目标?