2016-04-25 22 views
1

.secondの要素をsecondディレクティブlinkの機能firstディレクティブから得る方法はありますか?親子の子ディレクティブから要素を取得

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

P.Sはそれがtemplatelinkの機能と動作しますが、私はtemplateUrlを必要としています。

+1

でも、それはなぜ必要なのですか?これは悪い習慣であることに気づいている? – dfsq

+0

私はangular.jsを知りません(覚えておくためにここで質問を読んでいます)が、私はブラウザで他のMVVMの実装を知っていて、このような要素にアクセスすると、ビューとプレゼンテーションまたはビジネスロジック間の緊密な結合ができます。おそらく、ビューモデルまたはサービス –

+0

を介して双方向バインディングを介してその値を伝えることを検討する必要があります。それは私のタスクの非常に単純化された変形です。そこにはtemplateUrlがあり、このような要素を取得する必要があります。 – Andrey

答えて

2

templateURLを使用しているため、HTMLをダウンロードしてから非同期イベントにする必要があり時間がかかります。

あなたはタイムアウトで回避することができますが、それはあなたがどれくらい待つかわからないのできれいではありません。

一つのオプション、<second>は常に<first>内であると考えられる場合には、それが作成されると、独自のリンク機能から、それからのコールバックを実行することです:

{ 
    restrict: "E", 
    templateUrl:'second.html', 
    link: function(scope) { 
    scope.onSecondReady(); 
    } 
} 

がいっぱいのため、このplunkrをチェックコード:

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

<second>は異なる文脈で再利用することになって、とは限らないもみ内にある場合あなたはイベントを使用する必要があります。 1秒に1度の準備ができたら、scope.$emit('second-is-ready')を使用し、最初のものを聞くとscope.$on('second-is-ready')

+0

ありがとうございます) – Andrey

関連する問題