当用户继续滚动时,我试图为下拉选择设置无限重复。
使用$ 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, ...
有什么想法吗?
答案 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>
希望这可以提供帮助。