ng在Angular 5中的长度
发布时间:2020-12-17 07:54:47 所属栏目:安全 来源:网络整理
导读:我有三个按钮: 全部(Reals Fakes),Reals(总计数),Fakes(总计数) 我正在尝试获取将在All中显示的总Feed的总数. 而feed.feed_type!=”的总数将显示为Reals. 并且feed.feed_type ==”的总数将显示为Fakes. 饲料模型 export class Feeds { feed_id: string; fe
我有三个按钮:
全部(Reals Fakes),Reals(总计数),Fakes(总计数) 我正在尝试获取将在All中显示的总Feed的总数. 而feed.feed_type!=”的总数将显示为Reals. 并且feed.feed_type ==”的总数将显示为Fakes. 饲料模型 export class Feeds { feed_id: string; feed_category: string; feed_title: any; feed_description: string; feed_terms: string; feed_type: string; checked: false; } 饲料成分: import { Component,OnInit } from '@angular/core'; import { environment } from '../../environments/environment'; import { MyService } from '../shared/services/my-service.service'; import { FeedsService } from '../shared/services/feeds.service'; import { Feeds } from '../shared/services/feeds'; import { Feed } from '../shared/services/feed'; import { Observable } from 'rxjs/Observable'; @Component({ selector: 'app-feeds',templateUrl: './feeds.component.html',styleUrls: ['./feeds.component.scss'] }) export class FeedsComponent implements OnInit { feeds: Observable<Feed[]>; Reals: boolean; Fakes: boolean; selectedFeedType = ''; constructor(private myService: MyService,private feedsService: FeedsService) { this.selectedFeedType = 'All'; this.Reals = true; this.Fakes = true; } ngOnInit() { this.feeds = this.myService.feeds; this.myService.loadAll(); } SelectedFeedsType(event: any) { this.selectedFeedType = event.target.value; if (this.selectedFeedType === 'All') { this.Reals = true; this.Fakes = true; } else if (this.selectedFeedType === 'Reals') { this.Reals = true; this.Fakes = false; } else if (this.selectedFeedType === 'Fakes') { this.Reals = false; this.Fakes = true; } } } 为MyService: import { Injectable } from '@angular/core'; import { Observable } from 'rxjs/Observable'; import { Subject } from 'rxjs/Subject'; import { BehaviorSubject } from 'rxjs/BehaviorSubject'; import { environment } from '../../../environments/environment'; import { HttpClient,HttpHeaders } from '@angular/common/http'; import { FeedsService } from './feeds.service'; import { Feed } from './Feed'; @Injectable() export class MyService { feeds: Observable<Feed[]>; private _feeds: BehaviorSubject<Feed[]>; private baseUrl: string; total = ''; private dataStore: { feeds: any }; constructor(private http: HttpClient) { this.baseUrl = environment.API_ENDPOINT + 'feeds'; this.dataStore = { feeds: [] }; this._feeds = <BehaviorSubject<Feed[]>>new BehaviorSubject([]); this.feeds = this._feeds.asObservable(); } loadAll() { this.http.get(this.baseUrl).subscribe(feeds => { this.dataStore.feeds = feeds; console.log(feeds.length); const Reals = feeds.filter(feed => feed.feed_type !== '').length; console.log(Reals); const Fakes = feeds.length - Reals; console.log(Fakes); this._feeds.next(Object.assign({},this.dataStore).feeds);},error => console.log('Could not load feeds.')); } change(feeds) { this._feeds.next(feeds); } } Feeds.Component.html <ul> <li><input type="radio" name="feedType" value="All" checked (change)="SelectedFeedsType($event)">All</li> <li><input type="radio" name="feedType" value="Reals" (change)="SelectedFeedsType($event)">Reals</li> <li><input type="radio" name="feedType" value="Fakes" (change)="SelectedFeedsType($event)">Fakes</li> </ul> <table class="table table-bordered"> <thead> <tr><th>Feeds</th></tr> </thead> <tbody> <tr><td> <div class="storetabContent" *ngFor="let feed of feeds | async"> <ng-container *ngIf="Reals && feed.feed_type != ''"> <p>{{ feed.feed_title }}</p> <p>{{ feed.feed_category }}</p> <b>REAL</b> </ng-container> <ng-container *ngIf="Fakes && feed.feed_type == ''"> <p>{{ feed.feed_title }}</p> <p>{{ feed.feed_category }}</p> <b>FAKE</b> </ng-container> </div> </td></tr> </tbody> </table> 任何建议,帮助赞赏.
根据您的评论,要检索Feed_A和Feed_B的计数,您可以使用
Array#filter 和
Array#length :
const feedACount = feeds.filter(feed => feed.feed_type !== '').length; const feedBCount = feeds.length - feedACount; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |