Я пытаюсь создать директиву, которая будет центрировать 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?