Angularjs-检查我是否输入并切换加载程序图标
Angularjs - check if i am typing in input and toggle loader icon
我是angularjs的新手,当我在输入框中输入时,我试图更改一个图标。事实上,我可以用这种方式检测我是否有焦点:
$scope.loading = false;
$scope.focused = function() {
console.log("got focus");
$scope.loading = true;
}
$scope.blurred = function() {
console.log("lost focus");
$scope.loading = false;
}
以及在html:中
<i data-ng-if="!loading" class="uk-icon-search"></i>
<i data-ng-if="loading" class="uk-icon-spinner uk-icon-spin"></i>
<input ng-focus="focused()" ng-blur="blurred()" type="text" placeholder="Search...">
通过这种方式,如果加载变量为true,我可以在单击输入时更改图标。。但当我开始打字时,当我再次点击"输入"按钮更改图标时,我会显示微调器图标。有可能吗?感谢
简单视图示例
<div ng-controller="hey">
<input type="text" ng-model="key" ng-keypress="whenTyping($event)" ng-blur="whenNotTyping($event)"/>
<img src="/path/to/img.png" ng-show="typing"/>
<img src="/path/to/img.png" ng-show="!typing"/>
</div>
简单控制器示例
.controller('hey', function ($scope, $log) {
$scope.whenTyping = function (event) {
//the model you typing
$log.info($scope.key);
//the event typing
$log.info(event);
//you are typing hide img
$scope.typing = true;
}
$scope.whenNotTyping = function (event) {
//the model you typed before
$log.info($scope.key);
//the event on blur
$log.info(event);
//you are not typing hide img
$scope.typing = false;
}
});
不管怎样,我建议你使用控制器以外的指令。
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何创建带有插槽的vue js组件预加载程序
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 页面加载之前的jQuery Ajax加载程序
- 永远不要停止gif预加载程序
- Dojo AMD加载程序执行定义具有空/缺失依赖项的回调
- 用于各个元素的Ajax加载程序
- 显示全屏Ajax加载程序的最佳方式
- 要求创建空模块作为依赖项加载程序
- 如何在发送ajax请求时显示进度加载程序
- 如何更改jquerymobile中默认的加载ajax加载程序gif
- 避免将lib依赖项与webpack+handlebas加载程序捆绑在一起
- 带有模块加载程序的Emscripten
- 图像预加载程序
- Angular 1.X,webpack和ngtemplate加载程序问题
- 动画加载程序gif未旋转
- 为 HTML5 游戏添加游戏加载程序
- 创建 UI 加载程序时的引导程序
- 单击链接后显示加载程序
- 纯javascript的进度图像加载程序仅当用户单击提交html表单时