1

私は Angular を初めて使用し、Angular-UI-Bootstrap を AngularJS と組み合わせて動作させるという基本的な問題を抱えています。これは単純な例で、イベント処理に ng-change を使用し、ポップオーバーを持つ通常の入力フィールドです。ポップオーバー属性がなければ、コードは正常に機能します。ポップオーバー属性が追加されると、ポップオーバーは正しく表示され、問題なく表示されますが、入力フィールドの値が変更されたときに、イベント ハンドラーが呼び出されず、パスワード モデルも更新されません。

イベント処理コードとポップオーバーを含むボタンがある場合など、同じ問題が発生します。ポップオーバーを使用しない場合も同じ問題がありますが、ツールチップです。

<input type="password" ng-model="password" placeholder="New Password"
ng-change="onPasswordChanged()" popover="I am a popover!" 
popover-trigger="mouseenter" />

私は ui-bootstrap-tpls-0.3.0.js と AngularJS v1.0.7 を使用しています。

誰かが問題が何であるか知っていますか?

4

1 に答える 1

2

Popover ディレクティブは子スコープを作成するため、モデルをプリミティブにバインドすると、バインディングはそのスコープ内にとどまります (上方には伝播しません)。継承の詳細については、「 AngularJS におけるスコープ プロトタイプ/プロトタイプ継承のニュアンスは何ですか? 」を参照してください。

回避策は、モデルを参照するときにドット表記を使用することです。

<input type="password" ng-model="data.password" popover="I am a popover!" 
popover-trigger="mouseenter" />

デモプランカー

于 2013-06-24T08:45:35.030 に答える