AngularJS 路线和搜索查询

AngularJS routes and search query

我正在使用 Angular 和 UI 路由器构建一个小型搜索引擎。我正在尝试找出从主页(搜索提交)过渡到结果页面的最佳方式。

我的主页路由有这个(UI 路由器中的状态)

.state('home', {
        url: '/',

然后这是我的搜索结果页面

.state('search', {
        url: '/search?q',

我想让在主页上提交的用户搜索词出现在搜索结果页的 url 中。我怎样才能最好地使用 UI 路由器做到这一点?似乎这里可能需要抽象状态来预加载主页(模板、控制器和 url),然后有另一个状态,例如

.state('home', {
        url: '?q',

其中 q 用于查询参数...但是它似乎不太有效。是我的想法偏离了方向,还是我的代码中有我看不到的错误?

您可以通过 $state.go API 将查询参数传递给 UI 路由器,如下所示:

通过控制器

var params = { q: <user-input> }
$state.go( 'search', q )

通过指令

<a ui-sref="search({ q:<user-input> })">Search</a>

$state API 文档 - link