Vấn đề
Tôi có một chỉ thị đơn giản mà thực hiện kích thước thông tin cập nhật trên một yếu tố cụ thể. Điều này đồng hồ kích thước cửa sổ và điều chỉnh cho phù hợp.AngularJS chỉ thị đồng hồ mẹ thay đổi kích thước
MyApp.directive('resizeTest', ['$window', function($window) {
return {
restrict: 'AC',
link: function(scope, element) {
var w = angular.element($window);
scope.$watch(function() {
return { 'h': w.height(), 'w': w.width() };
}, function(newValue, oldValue) {
// resizing happens here
}, true);
w.bind('resize', function() { scope.$apply(); });
}
};
}]);
Điều này chỉ hoạt động tốt.
Nó chỉ xảy ra bên trong thẻ div
được liên kết với, tôi có con div
. Khi cha mẹ được thay đổi kích thước, tôi muốn thực hiện thay đổi vị trí trên phần tử con. Tuy nhiên, tôi không thể kích hoạt lửa.
này được gọi lúc khởi động, nhưng không được kích hoạt khi nguyên tố này được thay đổi kích cỡ hoặc những thay đổi cửa sổ:
MyApp.directive('centerVertical', ['$window', function($window) {
return {
restrict: 'AC',
link: function(scope, element) {
element.css({border: '1px solid #0000FF'});
scope.$watch('data.overlaytype', function() {
$window.setTimeout(function() {
console.log('I am: ' + element.width() + 'x' + element.height());
console.log('Parent is: ' + element.parent().width() + 'x' + element.parent().height());
}, 1);
});
}
};
}]);
Loại ràng buộc hoặc xem cấu hình tôi nên sử dụng để kiểm tra các thay đổi kích thước của phụ huynh thành phần?
Fiddle
https://jsfiddle.net/rcy63v7t/1/
Bạn có bất kỳ plnkr/fiddle nào cho điều này không? –
Tôi sẽ thử và thiết lập một thiết bị. Tôi chưa thực hiện một trong số đó cho AngularJS, vì vậy nó sẽ là một trải nghiệm tốt. –
Fiddle đã thêm. Tôi lưu ý rằng nếu tôi nhận xét chỉ thị thứ hai, lệnh đầu tiên sẽ hoạt động trở lại. –