検索

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

angular.js - Angular の双方向バインディングが壊れています!

最初にコードを貼り付けます:

コントローラー:

リーリー

ディレクティブ:

リーリー

html:

リーリー

効果:

折りたたんだ状態

展開時

予備提出が完了しました。私の期待は次のとおりです:

展開されたら、折りたたまれた領域をクリックして元に戻し、scope.isFold 折りたたみフラグを変更して元の状態に戻します。

質問は次のとおりです:

バグが発生します。つまり、scope.isFold の値を変更し、scope の値が変更されたことを確認しましたが、元の値がまだページ上にあります。つまり、双方向バインディングが無効です。下の写真をご覧ください

画像の表示では、折りたたみ領域が折りたたまれています。以下のscope.isFoldの出力も通常のtrueですが、dom要素を確認したところ、正しい値になっています。コントローラーを確認しました。ディレクティブのscope.isFoldの値は正しいです。この状況は非常に憂鬱です。 。 。

伊谢尔伦伊谢尔伦2861日前984

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

  • phpcn_u1582

    phpcn_u15822017-05-15 16:54:42

    $scope.$apply

    をイベント ハンドラー関数に追加します

    返事
    0
  • PHP中文网

    PHP中文网2017-05-15 16:54:42

    リーリー

    js

    リーリー

    返事
    0
  • 为情所困

    为情所困2017-05-15 16:54:42

    解決策は次のとおりです:

    dom 要素を操作し、スコープの属性値を変更した後、scope.$apply によってビューが更新されます

    リーリー

    返事
    0
  • 黄舟

    黄舟2017-05-15 16:54:42

    実際、多くの人が誤解をしています。つまり、リンク関数で elemnet.on のイベント監視をまだ使用しています
    ngClick を使用して、リンクにscope.click 関数を記述してみてはいかがでしょうか。

    サードパーティの jQuery プラグインを使用しない限り

    返事
    0
  • キャンセル返事