だから私はこれを行うために非常に多くの異なる方法を試しました。非常に多くのStackOverflowに続いて、これを動作させることができませんでした。私がしようとしているのは、ブール値のプロパティの値に基づいていくつかのリストアイテムをフィルタリングすることです。以下は私のオブジェクトデータの写真です。私が従う最も近い例はこの質問Filtering an Angular 1.2 ng-repeat with "track by" by a boolean propertyです。まだ動かない。それはオブジェクトリテラルとは何か関係があり、このタイプのプロパティのフィルタリングは配列でしか動作しませんか?私はjavascriptには新しいので、よく分からない。また、角度素材、仮想リピートコンテナと物事が結果に影響を与えていない基づいて、他の材料を使用して、私はあなたを1として ng-repeatのAngular 1.5フィルターがidでトラックで動作しない
loadAssets =() => {
var self = this;
self.infiniteAssets = {
numLoaded_: 0,
toLoad_: 0,
items: [],
pageNum:1,
virtualIndex:0,
getItemAtIndex: function (index) {
this.virtualIndex=index;
if (index > this.numLoaded_) {
this.fetchMoreItems_(index);
return null;
}
return this.items[index];
},
// Required.
getLength: function() {
if (this.virtualIndex > this.numLoaded_) {
return this.numLoaded_ ;
}else{
return this.numLoaded_ + 5 ;
}
},
fetchMoreItems_ : function (index) {
if (this.toLoad_ < index) {
self.loading = true;
this.toLoad_ += 20;
self.siAsset.getAssets(this.pageNum++,20)
.then(angular.bind(this, function (assets) {
//this.objLength = assets.length;
if(! assets.statusCode){
this.items = this.items.concat(assets);
this.toLoad_ = this.items.length;
this.numLoaded_ = this.toLoad_;
}
self.loading = false;
}))
}
}
};
console.log('++++++++++',self.infiniteAssets)
<md-virtual-repeat-container id="vertical-container" ng-show="$ctrl.infiniteAssets.getLength() > 0 && $ctrl.switch">
<md-list>
<md-list-item class="list-page" md-on-demand md-virtual-repeat="asset in $ctrl.infiniteAssets | filter: {disabled: true } track by asset.id" ng-click="$ctrl.loadDetail(asset)">
<span class="search-status" style="border-left-color:{{asset.statusColor}};"></span>
<p >{{asset.name}} </p>
<label hide-xs ng-if="asset.disabled" class="ng-animate-disabled">
<md-chips >
<md-chip >{{'LABELS.DISABLED' | translate}}</md-chip>
</md-chips>
</label>
<label ><i>{{asset.status || 'UNKNOWN'}}</i></label>
<md-button aria-label="Delete Asset" class="md-icon-button md-warn" layout-padding ng-click="$ctrl.deleteAsset(asset)">
<md-icon md-svg-icon="delete" class="modelTrashIcon"></md-icon>
</md-button>
<md-divider></md-divider>
</md-list-item>
</md-list>
</md-virtual-repeat-container>
コードスニペットの代わりにプランカを挿入すると、問題の作業に本当に役立ちます – user93
track by value_to_be_trackedbyは、$ indexやidなどのリスト内の各項目に対して一意である必要があります。 – user93