Javascript 使用AngularJS隐藏表单上的输入帮助

Javascript 使用AngularJS隐藏表单上的输入帮助,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我目前正在学习AngularJS,我想完成一项简单的任务。 在表单输入中,我想隐藏相应的“输入帮助”,即使输入中输入的数据无效。 我目前的做法是调用一些jquery。但我正在寻找使用AngularJS逻辑的方法。我认为我应该使用指令,但由于我是新来的角度,我不知道到底怎么做 以下是使用jquery的JSFIDLE示例代码: 下面是JSFIDLE示例代码不起作用(没有jquery): {对于测试,只需在密码输入中输入少量文本并将其模糊} 这是我的代码:{jquery} $(document).on

我目前正在学习AngularJS,我想完成一项简单的任务。 在表单输入中,我想隐藏相应的“输入帮助”,即使输入中输入的数据无效。 我目前的做法是调用一些jquery。但我正在寻找使用AngularJS逻辑的方法。我认为我应该使用指令,但由于我是新来的角度,我不知道到底怎么做

以下是使用jquery的JSFIDLE示例代码:

下面是JSFIDLE示例代码不起作用(没有jquery): {对于测试,只需在密码输入中输入少量文本并将其模糊}

这是我的代码:{jquery}

$(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
将根据名为
myForm

Thx的表单中名为
password
的字段的有效性切换类
ShowMeClassName
,以进行输入,但我不明白在指令中应将elm blur事件绑定到哪里。。。使用相同的指令进行验证…注意,我更改了角度/jQUery加载的顺序,因此可以使用
fade
动画,这些动画在
jQlite
中不受支持,现在可以工作了(在JSFIDLE中不使用委派)谢谢!一个重要的技巧,与这种情况无关,但你会遇到它。。。如果正在动态创建元素,并且指令需要执行操作…请将代码包装到
$timeout
中。即使在零延迟的情况下,它也给了angular Compileding diges一个机会,让他们能够精辟地谈论无法使用DLE的操作或代码。Agin,不适用于这种情况,除非您的表单控件构建在fly上。如果我明白了,AngularUI是一个“插件”,或者它默认在AngularJS源代码中实现?AngularUI是一个“插件”,您必须在脚本中包含它。