我将使用一个特定的示例,但这可能适用于任何事件,在一个元素上触发任何事件。假设我们点击 a <input>
时,我们希望关注 <span>
。我们可以使用如下指令来执行此操作:
<div ng-controller="Ctrl">
<span ng-focus-other>focus</span><input>
<div>
app.directive("ngFocusOther", function () {
return function (scope, element) {
element.bind("click", function () {
this.nextSibling.focus();
});
};
});
然而,这似乎不是 Angular 。如果对DOM进行任何更改(例如,如果<input>
在 <span>
之前移动),这也无效。如果相同的代码可以处理多组<span>
- <input>
组合,也许每个组都有不同的DOM布局,那也很好。
使用一个事件在另一个元素上触发另一个事件的Angular方式是什么?
答案 0 :(得分:1)
为什么不单击span设置一个名为“inputFocused”的布尔值为true,然后让输入注意该范围变量。即。
<span ng-click="inputFocused = true">FOCUS</span>
<input ng-focus="inputFocused" value="GIVE ME FOCUS">