Javascript Angular4对AngularJs指令
因此,我正在冒险学习第四章。到目前为止,除了我对指令的理解之外,一切都很简单。 我想创建一个指令,根据元素的宽度调整元素的大小。在angularJs中,可以这样做:Javascript Angular4对AngularJs指令,javascript,angularjs,angular,typescript,Javascript,Angularjs,Angular,Typescript,因此,我正在冒险学习第四章。到目前为止,除了我对指令的理解之外,一切都很简单。 我想创建一个指令,根据元素的宽度调整元素的大小。在angularJs中,可以这样做: angular.module('buzzard.directives') .directive('bzAnswers', directive) .controller('BzAnswersController', controller); function directive($window, $timeout)
angular.module('buzzard.directives')
.directive('bzAnswers', directive)
.controller('BzAnswersController', controller);
function directive($window, $timeout) {
return {
restrict: 'A',
link: lnkFn,
controller: 'BzAnswersController',
controllerAs: 'controller'
};
function lnkFn(scope, element, attrs, controller) {
var window = angular.element($window);
controller.resize(element);
window.bind('resize', function () {
$timeout(function () {
controller.resize(element);
});
});
};
};
function controller() {
var self = this;
// Method binding
self.resize = resize;
//////////////////////////////////////////////////
function resize(parent) {
var children = parent.children();
angular.forEach(children, function (child) {
var anchor = child.getElementsByTagName('a');
if (anchor.length === 1) {
var element = anchor[0];
var dimensions = element.getBoundingClientRect();
angular.element(element).css('height', dimensions.width * .5 + 'px');
}
});
};
};
所以我的问题是,在第四章中你会怎么做?
是的,我使用的是typeScript:)指令元素上的AngularJS事件监听器的直接对应项,
窗口或文档
是:
另请参见HostListener
和HostBinding
装饰程序如何转换为AngularJS。指令元素上的AngularJS事件侦听器的直接对应项,窗口
或文档
:
<> P>参见 HoistListabue和 HooLoad < /C>装饰器转换成AngularJS。你应该考虑阅读角文档。你应该考虑阅读角文档。
@Directive(...)
export class SomeDirective {
@HostListener('window:resize', ['$event'])
onResize(e) {
this.resize();
}
...
}