材料角度虚拟重复未在下拉列表中显示值

时间:2016-12-28 11:13:58

标签: javascript angularjs angular-material

当用户继续滚动时,我试图为下拉选择设置无限重复。

使用$ http沿着这些方向尝试了一些东西。但似乎无法让它发挥作用。

   $scope.infiniteItems = {
           numLoaded_: 0,
           toLoad_: 0,
           items: [],

           // Required.
           getItemAtIndex: function (index) {
               if (index > this.numLoaded_) {
                   this.fetchMoreItems_(index);
                   return null;
               }
               return this.items[index];
           },

           // Required.
           getLength: function () {
               return this.numLoaded_ + 25;
           },

           fetchMoreItems_: function (index) {
               if (this.toLoad_ < index) {
                   this.toLoad_ += 10;
                   AssemblyJigsFactory.getData().then(angular.bind(this, function (obj) {
                       this.items = this.items.concat(obj.data.success.data);
                       this.numLoaded_ = this.toLoad_;
                   }));
               }
           }
       };

如果我console.log( $scope.infiniteItems);它出现空白,

Object {numLoaded_: 0, toLoad_: 0, items: Array[0]}

我的HTML是一个带有此标记的简单对话框

 <md-input-container class="md-block" flex-gt-sm>
                                    <label>Storage Location</label>
                                    <md-select  ng-model="newJig.storagelocation" placeholder="Storage Location"  ng-cloak>
                                        <md-option>
                                          <md-virtual-repeat-container id="vertical-container">
                                            <div md-virtual-repeat="item in infiniteItems"  md-on-demand class="repeated-item" flex>
                                              {{item.name}}
                                            </div>
                                          </md-virtual-repeat-container>
                                          </md-option>
                                        <div ng-hide="allItems.length">No items found</div>
                                    </md-select>
                                </md-input-container>

但是storage location并没有显示任何值。我不确定html设置是否正确。

我已经测试了这个

 AssemblyJigsFactory.getData().then(function(res){

console.log( res.data.success);
});

自己和数据不断进入。

Object {total: 50, per_page: 25, current_page: 1, ...

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,请按照以下方式更改md-input-container

<md-input-container class="md-block" flex-gt-sm>
     <label>Storage Location</label>
     <md-select  ng-model="newJig.storagelocation" placeholder="Storage Location"  ng-cloak>
         <md-virtual-repeat-container id="vertical-container">
             <div md-virtual-repeat="item in infiniteItems"  md-on-demand class="repeated-item" flex>
                 <md-option ng-value='item.value'>{{item.name}}
                 </md-option>
            </div>
         </md-virtual-repeat-container>                                                         
     <div ng-hide="allItems.length">No items found</div>
    </md-select>
</md-input-container>

希望这可以提供帮助。