В моем проекте Angular я попытался создать directive
, который будет динамически изменять размер элемента при изменении размера окна браузера. Чтобы проверить это, я создал код ниже:Угловая директива применяется только к последнему элементу ng-repeat
(function() {
'use strict';
angular
.module('ftagn')
.directive('dynamicWidth', dynamicWidthDirective);
dynamicWidthDirective.$inject = [];
function dynamicWidthDirective($window) {
var directive = {
link: link,
restrict: 'A'
};
return directive;
function link(scope, element, attrs) {
console.log(window)
window.onresize = function(event) {
element[ 0 ].style.width = '500px';
};
}
}
})();
В то время как элемент стиля 500px
ширины действительно применяется на изменения размеров окна, это только применяется к последнему элементу ng-repeat
, что следующий один :
<div class="card" dynamic-width ng-repeat="fruit in $ctrl.fruits" >
<div>{{fruit}}</div>
</div>
Похоже, что каждая последующая итерация директивы перезаписывает предыдущую.
Как я могу обеспечить, чтобы все элементы были изменены, а не только последний?
это будет заботиться, если вы используете загрузчик! почему для этого есть отдельная директива? – Aravind
Если вы имеете в виду систему сетки бутстрапа, это не то, что я намереваюсь использовать. Это скорее мой эксперимент с директивами атрибутов. – Tiago