我有两个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
时。这是我的指令控制器里面的监视功能应该这样做:
$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
});
但是,这没有按预期工作。好像手表功能触发太晚了。您可以查看问题https://github.com/bobbywarner/grails-http-builder-helper。
答案 0 :(得分:2)
$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
});