1
我在使用虛擬重複以及md-list時遇到了奇怪的行爲。這是我的問題,因爲概括在GitHub上:AngularJS:Angular Material虛擬重複&md-list
實際行爲:
問題是什麼? *
當列表實現爲md-virtual-repeat-container時,並非所有項都在md-list上呈現。
預期的行爲是什麼?
我預計所有項目都會被渲染。
CodePen演示這說明您的問題:
http://codepen.io/frikkievb/pen/VKbEXZ
詳情:我發現,某些值不會被渲染的MD-名單上。在我這邊,通常是從每頁的0索引開始的項目。
角版本:
角版本: 1.5.5
角材質版本: V1.1.1
瀏覽器類型:*鉻
瀏覽器版本:* 53.0.2785.116米
OS:*的Windows 10
HTML
<div ng-controller="MyAppController as ctrl" ng-cloak="" class="virtualRepeatdemoDeferredLoading" ng-app="MyApp">
<md-content layout="column">
<div ui-view="projectContent">
<md-list md-virtual-repeat-container style="height:500px">
<md-list-item class="md-2-line" md-virtual-repeat="item in ctrl.items" md-on-demand ng-click="ctrl.edit()">
Item: {{item}}
</md-list-item>
</md-list>
</div>
</div>
的JavaScript
/** * 通過創建frikk於2016/08/01。 */
(function() {
function MyAppController() {
var vm = this;
vm.edit = edit;
vm.items = {
pages: [],
pageSize: 10,
getItemAtIndex: function (index) {
var pageNumber = Math.floor(index/this.pageSize);
var page = this.pages[pageNumber];
if (page) {
return page[index % this.pageSize];
} else if (page !== null) {
this.fetchPage(pageNumber);
}
},
getLength: function() {
return 50;
},
fetchPage: function (pageNumber) {
this.pages[pageNumber] = null;
var pageOffset = pageNumber * this.pageSize;
this.pages[pageNumber] = [];
for (var i = pageOffset; i < pageOffset + this.pageSize; i++) {
this.pages[pageNumber].push(i);
}
}
}
function edit() {
}
}
angular.module("MyApp",[
"ngAria",
"ngAnimate",
"ngMessages",
"ngMaterial",
])
.controller("MyAppController", [MyAppController]);
})()
謝謝camden_kid。我會嘗試使用這種解決方法。嘗試將其綁定到遠程源時遇到了最初的問題。將檢查這是否也可以解決該問題。 – frikkievb