2

私はhtml template以下、シンプルでcontorller as c

テンプレートを使用して、angularJsdirectiveを書いています:
移入値

<p>Input id : {{c.inputId()}}</p> <!--this is for test,correct value is shown--> 
<input id="{{c.inputId()}}" type="text" /> 

が、問題は、テスト用の<p>タグでも値が正しく表示されていても、input idは値を取得しないということです。
私はこれらを試しましたid="c.inputId()"id='c.inputId()'id="{{c.inputId()}}"id='{{c.inputId()}}'、しかしそれらのどれもうまくいきません。
私のコードに何が間違っていますか?これをどのように解決できますか?

EDIT 1
は私がdocumnet.getElementbyIdリターンはそれは私が質問を簡単にするために、それを言及していなかった私のミスだったと私はdocumnet.getElementbyId戻りヌルことを認識していなかったnull..maybeことを説明した方が良いと思います。

答えて

1

あなたが実際にそれがidで動作します、ng-attr-id="{{c.inputId()}}"

+0

ありがとうございます。しかし、問題を解決することはできません。また、ng-attr-Xを使わずに他の属性を設定しようとしました。 – Parid0kht

+0

コードをfiddle/plunkerに入れてください見る ? –

+0

Martijnの答えは問題を解決するはずです。 'dev console'をチェックしましたか? 'id'属性は、あなたのメソッドによって返される値で置き換えなければなりません。あなたが必要とするほど近くにあるこのプランカーをチェックしてください。 http://plnkr.co/edit/lxHB7Nl6egebFtiKkbBe –

0

が答えを@Martijnために、あなたのケースではので、属性に補間を使用するようにng-attrを使用する必要があり、問題が読んでいるng-attr-id :)

を使用する必要はありません角綴じがまだ完了していないときのID。document.getElementbyId('#someId')はnullを返します。

私は..私はそれが最善の解決策であり、また、私は私の解決策と満足していない場合はわからないthis postに私のdirective
感謝のlink機能で$timeoutを使用して、それを解決してきました。