UI路由器查询参数无法正常工作

时间:2016-08-20 14:54:40

标签: angularjs angular-ui-router

我将UI路由器设置为在网址中包含查询参数,但是当我这样做时,它破坏了我的应用上的搜索功能。

我的州是这样的:

  .state('home', {
  url: '/home',
  templateUrl: 'home/home.html',
  controller: 'HomeCtrl'})
.state('search', {
  url: '/search?q',
  templateUrl: 'search/search.html',
  controller: 'SearchCtrl'
});

我在HomeCtrl和SearchCtrl中都有这段代码:

$scope.searchTerms = $stateParams.searchTerms;

HomeCtrl基本上用作自动完成/查询页面。

然后我有了这个:

$state.go('search', {q: $scope.searchTerms});

在HomeCtrl上的getSuggestions函数和SearchCtrl中的搜索函数

为了使这个工作,我必须搜索两次......?我输入查询并点击回车,查询出现在网址中,然后我必须再次按Enter键才能显示结果。如果我点击搜索按钮,它根本不起作用:(

如果我注释掉$state.go行,搜索有效,但我在网址中丢失了查询参数,反之亦然。 似乎就像$scope以某种方式获得turned off

我应该使用ui-sref(更常见)而不是$state.go进行链接吗?我想将$state.go代码放在按钮元素上还是什么?

我做错了什么...以便搜索工作,我在网址中有查询参数?

0 个答案:

没有答案