Angularjs 角度材质:更改虚拟重复容器和触发器布局的大小

Angularjs 角度材质:更改虚拟重复容器和触发器布局的大小,angularjs,angular-material,Angularjs,Angular Material,我正在尝试使用mdVirtualRepeatContainer而不是ngRepeat。到目前为止,它在显示长长的元素列表时提供了巨大的性能改进。但是,只有在CSS中明确设置元素大小,我才能使它工作 为了使容器的大小适合不同的屏幕,我尝试使用指令设置元素的大小 my指令的链接函数如下所示: function link(scope, elem, attr, mdVirtualRepeatContainer) { elem.css('height', '600px'); mdVirtu

我正在尝试使用
mdVirtualRepeatContainer
而不是
ngRepeat
。到目前为止,它在显示长长的元素列表时提供了巨大的性能改进。但是,只有在CSS中明确设置元素大小,我才能使它工作

为了使容器的大小适合不同的屏幕,我尝试使用指令设置
元素的大小

my指令的链接函数如下所示:

function link(scope, elem, attr, mdVirtualRepeatContainer) {
    elem.css('height', '600px');
    mdVirtualRepeatContainer.updateSize();          
}
我只是以600px为例,理想情况下我会确定一个合适的高度

这可用于设置元素的高度,但结果只是一个空div,虚拟重复不会布局任何元素

事实上,只要将另一个指令附加到
元素,它就不会布局任何元素


那么如何在“运行时”设置虚拟重复容器的高度,并使其实际渲染元素呢?

在我发布此问题大约2分钟后,我就开始工作了

这是我的指示:

(function (){
    'use strict';

    angular.module('reportModule').directive('runtimeHeight', runtimeHeight);
    function runtimeHeight() {
        var directive = {
            link: link,
            require: 'mdVirtualRepeatContainer'
        };
        return directive;

        function link(scope, elem, attr, mdVirtualRepeatContainer) {
            elem.css('height', '600px');
            mdVirtualRepeatContainer.updateSize();          
        }
    }
})();
我之前遇到的导致指令失灵的问题是因为我为指令指定了一个控制器。在我抓紧稻草的某个时刻,我添加了一个控制器,以查看是否可以这样做,并无意中阻止了正确的方法在我找到它时工作。

我想知道这些解决方案(,)是否相关;第二个链接使用
mdVirtualRepeatContainer.\u setSize()