0

UI ブートストラップは、ボタンと順序付けられていないリストを使用した選択ドロップダウンを示しています。これはすべてうまくいきますが、HTML の選択タグと同じ機能を取得しようとしています。オプションを選択してモデルの値を変更し、ng-change 関数を起動するなどの機能。

入力にアタッチされた ngModel が変更されたときに ngChange イベントが発生すると思いましたが、そうではありません。私の問題にプランカーを添付しました。これは、 を呼び出す必要があるを変更するリスト項目user.groupの選択を示していますが、そうではありません。ngChange である種のセマンティクスが欠けていますか?ng-modelng-change="alert('blah')"

http://plnkr.co/edit/oZo7xGEVKvB0ntwiNFMp?p=info

4

2 に答える 2

4

公式ドキュメントがngChangeディレクティブについて述べたように:

ユーザーが入力を変更したときに、指定された式を評価します

https://docs.angularjs.org/api/ng/directive/ngChange

したがって、ディレクティブにはモデルの変更は含まれず、フォーム要素とのユーザー インタラクションを扱います。

angular docs からの詳細:

評価されません:

  • $parsers 変換パイプラインから返された値が変更されていない場合
  • モデルがnullのままであるため、入力が引き続き無効な場合
  • モデルが入力値の変更ではなく、プログラムによって変更された場合
于 2014-10-06T19:32:25.990 に答える
2

ボタンタグで ng-model ディレクティブを使用しているようです。ng-model は html フォームの入力要素でしか使用できないため、これは機能しません。ボタンは入力タイプではありません。angularjs ドキュメントを確認してください: https://docs.angularjs.org/api/ng/directive/ngModel

ngModel ディレクティブは、このディレクティブによって作成および公開される NgModelController を使用して、inputselecttextarea (またはカスタム フォーム コントロール) をスコープのプロパティにバインドします。

于 2014-10-06T19:22:44.557 に答える