Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular4对AngularJs指令_Javascript_Angularjs_Angular_Typescript - Fatal编程技术网

Javascript Angular4对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)

因此,我正在冒险学习第四章。到目前为止,除了我对指令的理解之外,一切都很简单。 我想创建一个指令,根据元素的宽度调整元素的大小。在angularJs中,可以这样做:

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();
    }

    ...
}