検索

ホームページ  >  に質問  >  本文

angular.js - jQuery は Angularjs コントローラーが取得できない入力値を設定します

これが Angularjs のルールに違反していることは承知しています。
まずは現場の話をしましょう。
ユーザーがページ A で [追加] ボタンをクリックすると、window.open によってページ B が開きます。ページ B に情報を入力した後、[保存] をクリックし、それをページ A にエコーしたいとします。次に、ページ A の情報とともにコントローラーに送信します。
私は Angularjs を初めて使用するため、引き続きページ B opener.document.getElementById を使用して親ページ (ページ A の非表示の入力値) を設定します。
ただし、ページ上の入力ビューは変更されているように見えますが、実際のモデルはまったく変更されておらず、コントローラーで取得される値はすべて未定義です。 アドバイスをお願いします
1. このように書かれている場合、コントローラーが隠しBページから返される入力値を取得するにはどうすればよいですか。
2. Angularjs の記述方法に従う場合、どのように変更する必要がありますか?

ページ A が添付されました:

リーリー

A.js:

リーリー

ページ B:

リーリー

習慣沉默習慣沉默2776日前760

全員に返信(4)返信します

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-15 16:51:38

    入力を変更して、JQ を使用してイベントを追加するだけです
    $("#cert_valid_from").val(date1).trigger('change');
    主にシミュレーションをトリガーして変更イベントをトリガーします

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-15 16:51:38

    リファレンスコード

    A.js:

    リーリー

    Bpage

    リーリー

    必要なアラートが A.js $scope.abv で利用できるようになりました。

    ただし、このアプローチは完全に回避策であり、強く推奨されないことに注意してください

    返事
    0
  • 漂亮男人

    漂亮男人2017-05-15 16:51:38

    理由は、Chrome プラグインを使用して、ボタンのクリックや入力を自動的にサポートするプラグインを作成する予定ですが、プロジェクトは angular で作成されており、入力値を js で設定することはできません。モデル値を更新する必要がありますが、これには非常にコストがかかります。変更ではなく入力をトリガーする必要があることを確認するのに多大な労力がかかり、その後、フレーム間操作の問題を解決するのに多大な労力がかかりました。 。 。 。 。
    くそー、答えを見つけるのに長い時間がかかりました。本当に疲れました。
    要約すると、js が入力値を変更した後、イベントをトリガーする必要があります。最初は変更だと思いましたが、苦労した結果、最終的に $('input').val(123).trigger('input') が正常であることがわかりました。 🎜🎜# しかし、私のプロジェクトはより複雑です。a.html は iframe を介して b.html を参照します。どちらの HTML にも jquery と angular のセットがあるため、入力をトリガーするには b.html の jquery を使用する必要があります (バグである可能性があります)。 )、つまり
    $('input',window.フレーム["f1"].contentWindow.document).val('55555555555').trigger('input')

    返事
    0
  • 黄舟

    黄舟2017-05-15 16:51:38

    ngModel値が更新・表示されない
    参考 http://www.cnblogs.com/whitewolf/p/ngmodel-zhi-bu-geng-xin-slash-xian-shi.html

    理由
    1. モデルの値がフォームの検証条件を満たしていないため、Angular はそれをレンダリングしません
    2. JavaScript の特別なプロトタイプ チェーン継承メカニズムにより、$scope 内の属性の割り当てを親 $scope に更新できません

    理由 2 の簡単な解決策: ngModel の属性値に「.」を追加すると、JavaScript プロトタイプ チェーンの取得が開始されます。

    返事
    0
  • キャンセル返事