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});
};
我想用 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});
};