AngularJS - Ng-route - 在输入:焦点时更改 ng-view



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

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});
};

最新更新