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
我正在使用 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