0

我将使用一个特定的示例,但这可能适用于一个元素上的任何事件触发另一个元素上的任何事件。假设我们想在单击a时聚焦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<input>如果对 DOM 有任何更改(例如,如果之前移动 <span>),这也将不起作用。如果相同的代码可以在多组组合上工作,那也很好<span>-<input>组合可能每组都具有不同的 DOM 布局。

使用一个事件在另一个元素上触发另一个事件的 Angular 方式是什么?

4

1 回答 1

1

为什么不简单地单击 span 将一个名为“inputFocused”的布尔值设置为 true,然后让输入注意该范围变量。IE

<span ng-click="inputFocused = true">FOCUS</span>
<input ng-focus="inputFocused" value="GIVE ME FOCUS">
于 2013-09-24T14:58:55.220 回答