指示中的角度手表元素高度
Angular watch element height in directive
我正在尝试这样做:
index.html
<div ng-controller="MyController" menu>
<input ng-model="myVar"/>
<div slimscroll="{'height':menuheight,'alwaysVisible':true}">
<div id="menucontent" menu-content>
</div>
</div>
</div>
当输入字段中有文本时,它将对menu-content
指令执行筛选。随着它的过滤,menu-content
的高度会发生变化。
菜单指令:
angular.directive('menu', function(){
return function (scope, element) {
var menuContentHeight = $("#menucontent").height();
scope.menuContentHeight = function(){
return $("#menucontent").height();
};
scope.$watch(scope.menuContentHeight, function(newValue, oldValue) {
if (newValue !== oldValue) {
console.log('Changed!');
menuContentHeight = newValue;
adjustHeight();
}
},true);
function adjustHeight(){
// Perform height adjustment
}
};
});
所以,我想做的是使用scope.watch
来监控高度变化并进行更新。我的代码确实有效,但问题是它不能立即更新。
如何在高度更改后立即获得高度调整更新?
使用$scope.apply()
scope.$watch(scope.menuContentHeight, function(newValue, oldValue) {
if (newValue !== oldValue) {
console.log('Changed!');
menuContentHeight = newValue;
adjustHeight();
$scope.apply(); //call digest cycle
}
},true);
它可能有助于你…
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- 在函数中添加数组元素的数值
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 将视口底部滚动到元素底部
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何使用jquery处理php循环通过元素
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 在Jquery detachment()和appendTo()之后定位元素
- 指示中的角度手表元素高度
- 有没有可能设定一个“手表”?这样,当HTML元素发生变化时,它就会碰到javascript调试器断点