gpt4 book ai didi

angularjs - 以 Angular 触发另一个元素的点击事件?

转载 作者:行者123 更新时间:2023-12-01 06:32:51 32 4
gpt4 key购买 nike

我有一个输入框,它与 datepicker 绑定(bind)。在我看来,除了这个输入框外,还有一个小日历图标。当用户单击此日历图标时,我想触发输入框的单击事件。我已经使用已应用于日历图标的指令来完成此操作。但它几乎像 jQuery。那么有什么不同的方法可以实现这一目标吗?如果我的方法是错误的,那么请引导我走向正确的方向。我是 Angular 的新手,我读过一些避免使用 jQuery 的文章。谢谢
My Directive

myApp.directive('openCal',function($compile,$filter) {
return {
link:function(scope,element,attrs) {
element.bind("click",function() {
element.siblings("input").trigger("click");
});
}
};
});

它工作正常。但我不确定这是正确的方法吗?

最佳答案

不,如果我理解你想要做什么,你会让事情变得过于复杂。

在您的情况下,您可能会遇到以下情况:

<img open-cal/>
<input ng-click="doSomething()">

通过 openCal 指令单击 img 会触发对输入的单击。而是考虑做这样的事情:
<div ng-click="doSomething()">
<img>
<input>
</div>

如果 doSomething() 需要从输入中获取数据,请使用 ng-model 将输入中的数据绑定(bind)到范围。

虽然!
如果您需要执行指令,那是正确的方法。使用 element.bind 不是问题,因为它包含在 Angular 中。您要避免使用诸如 $('.calendar').click 之类的东西。

关于angularjs - 以 Angular 触发另一个元素的点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18334694/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com