2016-04-08 7 views
2

私は<input/><select>要素を見つけて、blurイベントをバインドする指示文を持っています。私はng-blurでこれを行うことができますが、この質問は実際にangular.elementセレクタについてです。Angularjs Elementは、1回の呼び出しで選択と入力の両方を検索します。単一のタグ検索を制限していますか?

link: function(scope, elem, attrs){ 

    elem.find('input, select').bind('blur', someFunction); // doesn't work as input, select returns length 0 

    // this works when separated 
    elem.find('input').bind('blur', someFunction); 
    elem.find('select').bind('blur', someFunction); 

} 

私は質問がなぜ最初のやり方ではないのでしょうか?

documentation状態:

のfind() - https://docs.angularjs.org/api/ng/function/angular.element

からタグ名 による検索に限定されるものではなく、それは単一のタグの検索に制限されていますと言うことはありません。私は何か間違っているのですか?私はどこかのドキュメントを紛失しましたか?

+1

は、親子関係を表し、ありませんので、私は – SoluableNonagon

答えて

2

私たちは明らかにjQuery APIを持っていないので、が動作しないのは驚きではありません。ドキュメントは不足しています。また、そこには驚きはありません。しかし、sourceを見ると.find()getElementsByTagNameのラッパーに過ぎません。だから、ここではあまり買っていない。つまり、化合物セレクターは機能しません。

// jqLite.js#L998 
find: function(element, selector) { 
    if (element.getElementsByTagName) { 
     return element.getElementsByTagName(selector); 
    } else { 
     return []; 
    } 
} 
+0

理由で物事をクリアしてそのことを試していません。ちょうど私がこれを説明していた文書を持っていたらいいのに – SoluableNonagon

関連する問題