我无法在小型搜索应用程序的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

还有其他人不要在简单的事情上浪费时间。

08-07 08:04