반응형
AngularJS $watch 창 크기 조정 지시문 내부
다음과 같은 모듈 패턴이 있습니다.
'use strict';
angular.module('app', [])
.directive('myDirective', ['SomeDep', function (SomeDep) {
var linker = function (scope, element, attr) {
// some work
};
return {
link: linker,
restrict: 'E'
};
}])
;
제가 고민하는 건 여기에 $시계를 통합하는 거예요.특히 '$window' 서비스를 사용하여 창 크기를 확인합니다.
[편집] :
그동안 내 문제가 뭔지 깨달았어요소로 제한하다가 속성으로 구현한다는 것을 잊어버리고...@_@;
당신은 $시계가 필요 없어요.바인딩하여 창의 이벤트 크기 조정:
'use strict';
var app = angular.module('plunker', []);
app.directive('myDirective', ['$window', function ($window) {
return {
link: link,
restrict: 'E',
template: '<div>window size: {{width}}px</div>'
};
function link(scope, element, attrs){
scope.width = $window.innerWidth;
angular.element($window).bind('resize', function(){
scope.width = $window.innerWidth;
// manuall $digest required as resize event
// is outside of angular
scope.$digest();
});
}
}]);
들을 수 있다resize
어떤 차원이 변화하는 사건과 화재
지시의
(function() {
'use strict';
angular
.module('myApp.directives')
.directive('resize', ['$window', function ($window) {
return {
link: link,
restrict: 'A'
};
function link(scope, element, attrs){
scope.width = $window.innerWidth;
function onResize(){
// uncomment for only fire when $window.innerWidth change
// if (scope.width !== $window.innerWidth)
{
scope.width = $window.innerWidth;
scope.$digest();
}
};
function cleanUp() {
angular.element($window).off('resize', onResize);
}
angular.element($window).on('resize', onResize);
scope.$on('$destroy', cleanUp);
}
}]);
})();
html에서
<div class="row" resize> ,
<div class="col-sm-2 col-xs-6" ng-repeat="v in tag.vod">
<h4 ng-bind="::v.known_as"></h4>
</div>
</div>
컨트롤러:
$scope.$watch('width', function(old, newv){
console.log(old, newv);
})
// 태그에 따라 give 요소의 스크롤 바를 조정하는 윈도우 리사이즈에 대한 각도 2.0 지시입니다.
---- angular 2.0 window resize directive.
import { Directive, ElementRef} from 'angular2/core';
@Directive({
selector: '[resize]',
host: { '(window:resize)': 'onResize()' } // Window resize listener
})
export class AutoResize {
element: ElementRef; // Element that associated to attribute.
$window: any;
constructor(_element: ElementRef) {
this.element = _element;
// Get instance of DOM window.
this.$window = angular.element(window);
this.onResize();
}
// Adjust height of element.
onResize() {
$(this.element.nativeElement).css('height', (this.$window.height() - 163) + 'px');
}
}
언급URL : https://stackoverflow.com/questions/31622673/angularjs-watch-window-resize-inside-directive
반응형
'programing' 카테고리의 다른 글
Maven spring boot run 디버깅과 인수 (0) | 2023.03.16 |
---|---|
각도에서의 $broadcast(), $emit() 및 $on() 사용법JS (0) | 2023.03.16 |
창 크기를 조정할 때 슬릭 슬라이더가 반응하지 않음 (0) | 2023.03.16 |
스프링 캐시에서 @Cacheable 주석의 늘 값을 캐시하지 않도록 하려면 어떻게 해야 합니까? (0) | 2023.03.16 |
Webpack, Wordpress 및 BrowserSync가 함께 작동하도록 하는 방법 (0) | 2023.03.16 |