md-virtual-repeat与md-select无法正常工作

时间:2017-08-22 08:42:41

标签: angularjs angular-material

我试图为md-select实施md-virtual-repeat,其中有超过2000个项目可供选择。这不适用于md-option。

<md-input-container>
    <md-select ng-model="break.start_time" md-on-open="vm.mdSelectOnOpen()">
        <md-virtual-repeat-container id="vertical-container">
            <md-option md-virtual-repeat="option in vm.time" value="option.value" >{{option.text}}</md-option>
        </md-virtual-repeat-container>
    </md-select>
</md-input-container>

这有什么问题? I have updated a plunker with my problem. see

1 个答案:

答案 0 :(得分:2)

更新了答案

由于您使用md-virtual选中复选框,您可以参考下面的codepen,因为md-select有一个名为multiple的属性,它会添加复选框,因此无需添加复选框

<强>代码

<md-input-container>
    <label>Select an option</label>
    <md-select ng-model="selectedOption" md-on-open="mdSelectOnOpen()" multiple>
       <md-virtual-repeat-container id="vertical-container">
         <md-option md-virtual-repeat="option in options" ng-value="option" ng-selected="selectedOption.indexOf(option) > -1">{{option}}</md-option>
      </md-virtual-repeat-container>
    </md-select>
  </md-input-container>

Codepen: here

旧答案

您需要提供ng-selected选项和ng-value。

<md-input-container>
    <md-select ng-model="break.start_time" md-on-open="vm.mdSelectOnOpen()">
        <md-virtual-repeat-container id="vertical-container">
            <md-option md-virtual-repeat="option in vm.time" ng-value="option.value" ng-selected="break.start_time==option.value">{{option.text}}</md-option>
        </md-virtual-repeat-container>
    </md-select>
</md-input-container>

参考:codepen