Javascript 使用AngularJS隐藏表单上的输入帮助
我目前正在学习AngularJS,我想完成一项简单的任务。 在表单输入中,我想隐藏相应的“输入帮助”,即使输入中输入的数据无效。 我目前的做法是调用一些jquery。但我正在寻找使用AngularJS逻辑的方法。我认为我应该使用指令,但由于我是新来的角度,我不知道到底怎么做 以下是使用jquery的JSFIDLE示例代码: 下面是JSFIDLE示例代码不起作用(没有jquery): {对于测试,只需在密码输入中输入少量文本并将其模糊} 这是我的代码:{jquery}Javascript 使用AngularJS隐藏表单上的输入帮助,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我目前正在学习AngularJS,我想完成一项简单的任务。 在表单输入中,我想隐藏相应的“输入帮助”,即使输入中输入的数据无效。 我目前的做法是调用一些jquery。但我正在寻找使用AngularJS逻辑的方法。我认为我应该使用指令,但由于我是新来的角度,我不知道到底怎么做 以下是使用jquery的JSFIDLE示例代码: 下面是JSFIDLE示例代码不起作用(没有jquery): {对于测试,只需在密码输入中输入少量文本并将其模糊} 这是我的代码:{jquery} $(document).on
$(document).on('blur', '.immediate-help', function () {
$(this).next('.input-help').fadeOut();
}).on('focus', '.immediate-help', function () {
$(this).next('.input-help').fadeIn();
});
这就像预期的那样工作,但我想使用angular指令来完成它。当然,我并不反对在angular指令中使用jquery
所以,要继续,我想在触发模糊输入时隐藏“输入帮助”,即使文本无效,也要使用角度指令
有人能告诉我正确的方法吗?你可以用
Angular UI提供了一系列指令,可以帮助您。您有ui事件指令
例如,您可以使用
<input ui-event="{ blur : 'blurCallback()' }">
...
<script>
$scope.blurCallback = function() {
alert('Goodbye');
};
</script>
...
$scope.blurCallback=函数(){
警惕(“再见”);
};
几种方法:
在指令中使用脚本:
如果jQuery.js在页面中的anugular.js之前加载,则指令link
中的elm
参数中的回调是jQuery对象。。。或者,如果不包括jQuery.js,则它是一个jQlite
jQlite有许多最常用的jQuery方法,因此您可以使用:
elm.bind('blur....
有关jQlite方法的列表,请参见
使用ng类
为窗体和控件指定一个名称
。这将创建一个对象formName
,其属性由字段名表示。然后,您可以对类使用角度表达式,或在标记中使用属性,如disabled
<form name="myForm">
<input name="passord"/>
<div ng-class="{ShowMeClassName: myForm.password.$invalid}"> Error content</div>
</form>
错误内容
ng class
将根据名为myFormThx的表单中名为password
的字段的有效性切换类ShowMeClassName
,以进行输入,但我不明白在指令中应将elm blur事件绑定到哪里。。。使用相同的指令进行验证…注意,我更改了角度/jQUery加载的顺序,因此可以使用fade
动画,这些动画在jQlite
中不受支持,现在可以工作了(在JSFIDLE中不使用委派)谢谢!一个重要的技巧,与这种情况无关,但你会遇到它。。。如果正在动态创建元素,并且指令需要执行操作…请将代码包装到$timeout
中。即使在零延迟的情况下,它也给了angular Compileding diges一个机会,让他们能够精辟地谈论无法使用DLE的操作或代码。Agin,不适用于这种情况,除非您的表单控件构建在fly上。如果我明白了,AngularUI是一个“插件”,或者它默认在AngularJS源代码中实现?AngularUI是一个“插件”,您必须在脚本中包含它。