2016-10-30 13 views
0

In this plunk私は、UL要素で宣言されているディレクティブを持っています。ディレクティブ要素パラメータにHTMLマークアップを取得する

<directive> 
    <ul> 
    <li id="0">xxx 0</li>   
    <li id="1">xxx 1</li>   
    <li id="2">xxx 2</li>   
    </ul> 
</directive> 

私はディレクティブリンク機能でelementパラメータを分析することによって、これらを取得しようとしているが、私は唯一のinnerHTMLの中でそれらを得ます。私が必要とするのは、li要素のIDとテキストをDOMとして取得することです。何か案は?

angular.module('app', []); 
angular.module('app').directive('directive', function() { 
    var directive = {}; 
    directive.restrict = 'AE'; 
    directive.scope = true; 
    directive.link = function(scope, element, attrs) {  
     console.log(element) 
    }; 
    return directive; 
}); 
+0

あなたはこの結果をしたいですか: http://plnkr.co/edit/baeGA2wbMuZkQRW5vlY7?p=preview – Natiq

+0

@Nati ●いいえ、そのようなプレーンテキストです。 – Michelangelo

+0

これは本当に後方にあるようです。最初にhtmlを生成するのは何ですか? – charlietfl

答えて

1

あなたがquerySelectorを使用するために持っていけないディレクティブの要素を持っているので、

あなたが直接行うことができ、

directive.link = function(scope, element, attrs) { 
     console.log(element.find("ul")[0].children); 
}; 

DEMO

+0

これは動作しますが、ディレクティブにテンプレートがある場合、この問題を解決する方法はありませんか?コンソールのエラーを参照してください。http://plnkr.co/edit/Wy058Wqh2c7im0LhQQLC?p=preview – ps0604

1

はいできます。要素をログに記録すると、それはオブジェクトのような配列であることがわかり、HTML要素を取得するにはまず配列のキーを選択する必要があります。

});

http://plnkr.co/edit/ajLmjxnDJ1JXjkk86aRh?p=preview

+0

* "要素は配列です" * ...いいえ、オブジェクト*のような*配列です。 – charlietfl

+0

@charlietflはい、本当...それを指摘してくれてありがとう。 – Michelangelo

関連する問題