我正在尝试创建一个以 div 为中心的指令。
到目前为止,我有这个代码:
app.directive("setcenter", function () {
return {
scope:{
setcenter: '='
},
link: function (scope, element, attrs) {
scope.$watch('setcenter', function (newValue) {
if (newValue == true) {
var width = element.width();
element.css('position', 'absolute');
element.css('top', '80px');
element.css('left', '50%');
element.css('z-index', '200');
element.css('margin-left', '-' + width / 2 + 'px');
}
});
}
}
});
问题是元素的宽度。该指令的重点是使用该指令的 div 没有设置宽度。我希望这个指令能够计算出宽度并将 div 居中。
我遇到的问题是当指令被调用时,div的实际宽度还不知道。当我在我的情况下使用它时,div 是 800px,但是当页面完成加载时,div 是 221px。
那么,我该怎么做才能等到知道 div 的实际宽度?