4

このフィドルを投稿する前に、SOで同様の質問を確認しました。答えはほとんどありませんでしたが、それらはすべてフォーム要素ではありませんでした。http://jsfiddle.net/dgQAd/

次の質問があります。

1)テキストボックスはモデルにバインドされていますunameが、オンロード時にテキストボックスに値が表示されません。なぜこれが起こっているのですか?

2)これに対する答えを探しているときに、のようなものを見つけrequire:ngModel、リンク関数内にコントローラーを挿入しましたが、ディレクティブのリンク関数内でこの挿入されたコントローラーをどのように使用できますか?

ng-model3)分離スコープディレクティブのリンク関数内から親スコープの変更を探す方法。

4

1 に答える 1

3

ng-modelを分離スコープで動作させることができた唯一の方法は、分離スコープのプロパティに同じ名前を使用することです scope:{ "uname":"=ngModel" }。これで、$watchが機能します。詳細については、https://stackoverflow.com/a/14792601/215945も参照してください

ディレクティブrequireが別のディレクティブのコントローラーである場合、そのコントローラーはリンク機能の4番目のオプションとして使用できます。あなたのフィドルでは、それはあなたが呼んだものですngModel

link:function(scope,el,attrs,ngModel){

通常、私はこのngModelCtrlに名前を付けて、コントローラーであることを思い出させます。

$ observeは、「@」構文を使用する分離スコーププロパティでのみ使用されます。

于 2013-03-02T22:56:18.980 に答える