ng-select [items]绑定获取选项太多次

时间:2019-01-05 10:35:34

标签: angular typescript angular-ngselect

我正在学习Angular,并尝试首次使用NgSelect。而且我注意到,如果我将dropdownValues用作[items],则每次将鼠标指针悬停在select中的任何选项上时,或者每次打开和关闭select控件时,它都将显示在控制台“ dropdownValues”中。快于选项无论我使用_dropdownValues还是dropdownValues,我都会获得15-20%的CPU负载。 这是怎么回事为什么我每次执行NgSelect都需要检索[项目]时,这些都不应该成为重新渲染或检索[项目]的原因。我该怎么做才能优化我的代码,以便它不会给CPU带来如此大的负担?

  <ng-select [items]="_dropdownValues" bindValue="value" [(ngModel)]="name"></ng-select>
  <ng-select [items]="dropdownValues" bindValue="value" [(ngModel)]="name"></ng-select>

  @Component({
    selector: 'testcomponent',
    templateUrl: './testcomponent.html'
  })
  export class TestComponent {
    _dropdownValues: DropdownOption[] = [];
    get dropdownValues() {
      console.log("dropdownValues");
      return this._dropdownValues;
    }
    constructor() {
      for (var i = 0; i < 150; i++) {
        this._dropdownValues.push({ value: i.toString(), label: "Test" + i });
      }
    }
  }

  export interface DropdownOption {
    value: string;
    label: string;
  }

0 个答案:

没有答案