1

似たような、または同じことを求めるSOの投稿があることに気づきましたが、複製ボタンを押す前に、すべての解決策を試しましたが、ターゲットのAngularJSバージョン(1.4)ではどれも機能しなかったことに注意してください。 .8)。それを念頭に置いて:

HTML:

<div ng-app="app" ng-controller="app">
  <textarea size-watch>{{ height }}</textarea>
</div>

JavaScript:

angular.module("app", [])
.controller("app", function() {
})
.directive("sizeWatch", function() {
    return {
    restrict: "A",
    link: function(scope, elem) {
            scope.$watch(function() { return elem[0].offsetHeight; }, function(newHeight, oldHeight) {
        scope.height = newHeight;
      }, true);
    }
  }
});

フィドル

私がやろうとしていることは次のとおりです。要素の高さを監視し、変更されるたびにスコープのプロパティを更新するディレクティブを作成したいと考えています。最初に表示する値を取得できるので、ディレクティブとコントローラー/スコープの間のリンクが機能していることがわかります。ただし、テキストエリアのサイズが変更されたときに (右下隅をドラッグして) 更新する値を取得できません。debugger;2 番目の関数にを呼び出し、watch1 回だけ呼び出されることを確認しました。

有効な解決策が見つかったら、リンクされたフィドルを自由に更新してください。

4

1 に答える 1

0

テスト目的での要素の選択は残念でした。明らかtextareaに、他の要素 (具体的には s など) と同じ方法でサイズ変更イベントを発生させませんdiv。これは、私が達成しようとしていたことの実用的なフィドルです。

于 2016-05-12T16:25:03.467 に答える