*cdkVirtualFor 在我的应用程序中不起作用,它在 Angular 7.2.0 中

Sam*_*amu 6 angular-material angular7

<ul class="list">
  <cdk-virtual-scroll-viewport  style="height: 500px" itemSize="90" >
      <div *ngFor="let n of numbers" style="height:130px;">{{n}}</div>
  </cdk-virtual-scroll-viewport>
</ul>

<!--app.module.ts-->

import { ScrollingModule } from '@angular/cdk/scrolling';

@NgModule({
  imports: [ ScrollingModule ]
})

<!--app.component.ts-->

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  numbers: number[] = [];

  constructor() {
    for (let index = 0; index < 10000; index++) {
      this.numbers.push(index);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

一切都很好,但它显示“=====>无法绑定到 'cdkVirtualForOf',因为它不是 'div' 的已知属性。<===== 错误

Dmi*_*try 9

您应该导入一个 ScrollDispatchModule:

import { ScrollDispatchModule } from '@angular/cdk/scrolling';
Run Code Online (Sandbox Code Playgroud)

并将其添加到 NgModule 中的 inports 数组中:

@NgModule({
  ...
  imports: [
    ScrollDispatchModule
  ],
  ...
})
Run Code Online (Sandbox Code Playgroud)

现在给你的 div 添加一些样式:

.example-viewport {
    height: 200px;
    width: 200px;
    border: 1px solid black;
  }

.example-item {
    height: 50px;
}
Run Code Online (Sandbox Code Playgroud)

它对我有用)祝你好运)

  • 在 Angular 版本 7.3.7 和 8.1.4 之间,_ScrollDispatchModule_ 名称已被弃用,取而代之的是较新的 _ScrollingModule_ (5认同)
  • 我必须在共享模块中导入和导出“ScrollingModule”才能消除错误。 (4认同)

小智 8

添加如下

import {ScrollingModule} from '@angular/cdk/scrolling';
imports: [
    ScrollingModule
  ]
Run Code Online (Sandbox Code Playgroud)

删除下面

import {CdkVirtualScrollViewport} from "@angular/cdk/scrolling";
imports: [
    CdkVirtualScrollViewport
  ]
Run Code Online (Sandbox Code Playgroud)