我无法在小型搜索应用程序的UI路由器中使用查询参数。
在我更好地了解Angular之前,它现在确实很简单,只是一个主页和结果页面。主页上只有一个具有自动完成功能的搜索框。搜索页面具有相同的搜索框,然后显示结果。在我的搜索框中,我在调用search()的按钮上进行了ng-submit提交。在search()中,我有$ state.go('state',{q:'searchTerms'}),searchTerms是我在输入中的ng模型。
从首页转到结果页,URL保持不变:
http://localhost:8000/app/search?q=searchTerms
代替http://localhost:8000/app/search?q=usertypedinput
为什么?
我的状态(路线)
$stateProvider
.state('home', {
url: '/home',
templateUrl: 'home/home.html', controller: 'homeCtrl'})
.state('search', {
url: '/search?q',
views: {
'' : { templateUrl: 'search/search.html', controller: 'searchCtrl' }
//add more views here when necessary
}
});
如您所见,我正在使用命名视图INSTEAD的嵌套视图。很多示例使用嵌套视图,因此我很好奇这是否是导致问题的原因,或者我是否缺少某些内容?
在搜索应用中使用嵌套视图会更好吗?
最佳答案
我弄清楚了,除了state.go中的一些令人讨厌的语法外,其他一切都是正确的:((
$state.go('search', {q: 'searchTerms'});
本来应该
$state.go('search', {q: $scope.searchTerms});
searchTerms,不带单引号和
$scope
还有其他人不要在简单的事情上浪费时间。