javascript - 在 AngularJS 中处理元素大小调整

标签 javascript jquery angularjs angularjs-directive

我有一个包含两个 div 的指令:

<div id="childContainer">
  <div id="child">
    <a class="btn btn-primary testBtn1" ng-show="!vm.hideButton">Test Button 1</a>
    <a class="btn btn-secondary testBtn2">Test Button 2</a>
  </div>
</div>

我试图使 childContainer div 与 child div 保持相同的高度,特别是当我隐藏 testBtn1 时。这是我的指令 Controller 中的 watch 函数,它应该这样做:

$scope.$watch(function(){
  return vm.child.height(); //vm.child is a jQuery object
}, function(){
  vm.childContainer.height(vm.child.height()); //vm.childContainer is a jQuery object
});

但是,这并没有按预期工作。好像 watch 功能触发得太晚了。可以查看issue here on my plnkr .

最佳答案

$watch 应该接受您要监​​视的变量,而不是值。

return vm.child.height(); //vm.child is a jQuery object

在这里,您将返回 vm.child.height();。将其更改为:

$scope.$watch('vm.child.height()', function(){
  vm.childContainer.height(vm.child.height()); //vm.childContainer is a jQuery object
});

关于javascript - 在 AngularJS 中处理元素大小调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33815911/

相关文章:

javascript - 将 XXX.db.bson_serializer.ObjectID.createFromHexString(id) 外包给函数?

javascript - FullCalendar updateEvent 不起作用 : Cannot read property 'clone' of undefined

javascript - 如何使用 jQuery 克隆和更改表的所有 ID?

java - Spring 的 GET 端点中的 ImmutableSet 与 AngularJS

angularjs - 如何在虚拟机上访问我的工作 Angular 2 应用程序

javascript - 在 angularjs $resource 请求期间阻止/取消阻止表单

javascript - JQuery:排除一个子元素

javascript - 为什么 Bxslider 不工作

testing - 使用 angularjs 模拟而不实际模拟任何东西

javascript - jQuery .data() 从存储的数组中删除项目