我正在创建一个有Angular 的市场,并且我已经创建了Marketplace页面,该页面由一个用moackapi创建的远程json填充.问题是,在主页上,我想要显示来自相同JSON的单个项目(可能是随机的),但与*NG一起显示所有项目.

这是我的代码:

export class DashboardComponent implements OnInit {

    nfts: any;
    constructor(
        private http: HttpClient,
    ) {

    }

    ngOnInit(): void {
        this.getNfts()
    }

    getNfts() {
        this.http.get('https://63bd1526fa38d30d85d88179.mockapi.io/NFT/v1/metadata').subscribe((data) => {
            this.nfts = data
        })
    }

}

// HTML

            <div class="card cards card-p" *ngFor="let nft of nfts">
                <img src="{{nft.image}}" class="card-img-top">
                <div class="card-body">
                    <h4 class="nft-title">{{nft.name}}</h4>
                    <a class="nft-collection mb-3" routerLink="/">NFT collection</a>
                    <p>Price: <span>300</span></p>
                    <button class="button heart text-end"><i class="fa-solid fa-heart"></i></button>
                    <a routerLink="/nft-details/:id" class="stretched-link"></a>
                </div>
            </div>

我希望有人能帮助我!谢谢!

推荐答案

如果您想要做的只是显示数组中的单个元素(随机),那么您可以使用类似于"Math.Floor(Math.Random()*this.nfts.long)"的命令从数组中获取一个随机元素并显示该array.

因此,该html将如下所示

<div class="card cards card-p">
  <img src="{{nfts[randomIndex].image}}" class="card-img-top">
  <div class="card-body">
    <h4 class="nft-title">{{nfts[randomIndex].name}}</h4>
    <a class="nft-collection mb-3" routerLink="/">NFT collection</a>
    <p>Price: <span>300</span></p>
    <button class="button heart text-end"><i class="fa-solid fa-heart"></i></button>
    <a routerLink="/nft-details/:id" class="stretched-link"></a>
  </div>
</div>

Java 手稿

export class DashboardComponent implements OnInit {
    nfts: any;
    randomIndex = 0;
    constructor(
        private http: HttpClient,
    ) {

    }

    ngOnInit(): void {
        this.getNfts()
    }

    getNfts() {
        this.http.get('https://63bd1526fa38d30d85d88179.mockapi.io/NFT/v1/metadata').subscribe((data) => {
            this.nfts = data
            this.randomIndex = Math.floor(Math.random() * this.nfts.length)
        })
    }

}

Json相关问答推荐

Jolt Transformation—如果子对象为空,则将父对象更新为空

JSON:将项';S键/名称移动到属性中,并使用JQ将其转换为数组

时间序列的Vega Lite分组条形图

当console.log返回TRUE值时,解析的JSON中的字段未定义

使用 jolt 变换压平具有公共列 JSON 的复杂嵌套

展平多个数组以保持顺序

如何在 JSonPath 中按值查找列表中的所有元素

将请求中的数据推送到数组中

golang递归json来构造?

阅读 JSON 正文 Firebase 云函数

提交后使用 Rails 7 结合 JSON 标签进行标记

如果 JSON 对象包含列表中的子字符串,则丢弃它们

使用 System.Text.Json 序列化记录成员

如何为所有 API 端点全局设置 http.ResponseWriter Content-Type 标头?

JSON.NET 中特定对象的自定义转换

解析包含换行符的 JSON

如何在已声明的 JSON 对象中添加键值对

嵌套 JSON:如何向对象添加(推送)新项目?

使用 Python 3 读取 JSON 文件

无法解析 JSON 文件中的 TAB