AngularJS - Ng-route - 在 input:focus 时更改 ng-view

AngularJS - Ng-route - Change ng-view when input:focus

我想用 ng-view 改变我的观点。关键是,我需要在有人开始输入 input:text 字段时触发 ng-click 事件,而不是触发事件(这样我就可以达到与开始在搜索框中输入时相同的效果这个 page).

PS:我尝试将 ng-click 添加到输入元素,但这不会触发事件。任何帮助将非常感激。谢谢!

编辑:这是更新后的 plunkr,其中包含 dfsq

提供的正确答案

您需要做的就是将 ngChange 指令与 ngModelOptions(用于去抖动)一起使用:

<input type="text" 
       ng-change="searchProduct()"
       ng-model="query" 
       ng-model-options="{ updateOn: 'default blur', debounce: { 'default': 500, 'blur': 0 } }">

然后 changeView 的实现由您决定,但我假设您需要对 $location.path 做一些更改视图:

$scope.searchProduct = function() {
  // ...
  $location.search({query: $scope.query});
};