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);
    }
  }
});

小提琴

这就是我想要做的事情:我想创建一个指令来监视元素的高度并在它发生变化时更新范围上的属性。我可以得到最初显示的值,所以我知道指令和控制器/范围之间的链接正在工作。但是,当 textarea 调整大小(通过拖动右下角)时,我无法获取要更新的值。我debugger;在第二个watch函数中调用了,并验证它只被调用一次。

当您找到可行的解决方案时,请随时更新链接的小提琴。

4

1 回答 1

0

我选择用于测试目的的元素是不幸的。显然不会像其他元素(特别是像s)textarea那样引发调整大小事件。div这是我试图实现的目标

于 2016-05-12T16:25:03.467 回答