You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular中如何将Service里的Mock数据渲染展示到HTML页面上

实现步骤

1. 先完善ProductService的基础配置

你当前的Service缺少Angular必须的@Injectable装饰器,同时需要明确定义ProductSuite类型,修改后的product-suite.service.ts代码如下:

// 先定义ProductSuite数据类型
export interface ProductSuite {
  id: number;
  title: string;
  description: string;
}

@Injectable({
  // 全局单例注入,不用再额外在模块/组件声明providers
  providedIn: 'root'
})
export class ProductService {
  productsuite: ProductSuite[] = [
    {
      id: 1,
      title: '90,346',
      // 如果要和原HTML文案一致,可以改成"Users Right Now"
      description: 'Users Right Now',
    },
    {
      id: 2,
      title: '250++',
      description: 'Saved',
    },
    {
      id: 3,
      title: '$34.5 mill',
      description: 'New User per Week',
    },
  ];
}

2. 修正组件TS的代码逻辑

你当前的组件代码有变量类型错误、生命周期钩子拼写错误,也没有正确注入Service,修改后的代码如下:

import { OnInit } from '@angular/core';
import { ProductService, ProductSuite } from '../../data/product-suite.service';

export class MaxisProductSuiteComponent implements OnInit {
  // 用来存储从Service拿到的KPI数据
  kpiList: ProductSuite[] = [];

  // 依赖注入ProductService
  constructor(private productService: ProductService) {}

  ngOnInit(){
    // 组件初始化时读取Service里的Mock数据
    this.kpiList = this.productService.productsuite;
  }
}

3. 替换HTML中的硬编码内容为循环渲染

把原来写死的三个KPI容器替换为Angular的*ngFor循环结构,直接遍历kpiList渲染即可:

<div class="container2">
  <div class="header" style="height: 400px">
    <div class="content3">
      <!-- 循环遍历kpiList渲染每个KPI项 -->
      <div *ngFor="let kpi of kpiList">
        <h1 class="kpi-title">{{kpi.title}}</h1>
        <p class="kpi-des">{{kpi.description}}</p>
      </div>
    </div>
  </div>
</div>

内容的提问来源于stack exchange,提问作者user9436741

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:57:03