搜索输入和$ state.go

时间:2016-10-13 03:56:45

标签: angularjs angular-ui-router

我使用AngularJS和Elasticsearch构建了一个小型电影搜索应用。
我使用AngularJS UI Bootstrap Typeahead进行自动完成。

我的应用非常简单,hp,结果页面,联系表单。
我想要做的是在搜索输入上使用ngKeydown/ngKeypress$state.go
我正在寻找的是当用户开始在搜索输入中的hp上键入他们的查询时,页面会转到第一个按键上的结果页面,然后开始显示建议。

这样的事情:

<form>
  <input type="text ng-keypress="$state.go('results')">
</form>

2 个答案:

答案 0 :(得分:1)

您的控制器的依赖关系在您的HTML中无法神奇地提供。您需要在控制器上创建该函数,并从您的html调用该函数。

控制器:

function myController($scope, $state) {
    $scope.navigate = function (destination) {
        $state.go(destination);
    }
}

HTML:

<form>
    <input type="text ng-keypress="navigate('results')">
</form>

答案 1 :(得分:0)

您需要在控制器中注入$ state服务。您只能在html中使用$ scope或$ rootScope对象。因此,您需要在按键或按键调用某些功能并从控制器更改状态。