2013-09-24 38 views
0

事件中,我會用一個具體的例子,但這可以適用於任何事件一個元素觸發任何事件在另一個上。假設我們想要重點<input>當我們點擊 a <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(); 
     }); 
    }; 
}); 

然而,這似乎並不十分:我們可以使用像一個指令做到這一點。如果DOM有任何變化(例如,如果<input>被移動之前<span>),這也不起作用。如果相同的代碼可能適用於多個可能各自具有不同DOM佈局的組的組合,那麼也是很好的。

什麼是使用一個事件觸發另一個元素上的另一個事件的角度方式?

回答

1

爲什麼不簡單地點擊跨度設置一個名爲「inputFocused」的布爾值爲true,然後讓輸入注意該範圍變量。即

<span ng-click="inputFocused = true">FOCUS</span> 
<input ng-focus="inputFocused" value="GIVE ME FOCUS"> 
+0

http://jsfiddle.net/HB7LU/500/ - 這似乎不工作;我錯過了什麼嗎? –

+0

@ExplosionPills好像在最新版本中添加了'ngFocus':http://docs.angularjs.org/api/ng.directive:ngFocus – Cherniv

+0

@Cherniv在我的jsfiddle中我包含了一個可能工作的ng-focus指令 –

相關問題