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

Angular模板内能否无需自定义函数实现parseInt类型转换?

解决方法

不用写自定义转换函数,有几种简单方式可以解决这个问题:

  • 在ngClass条件里用一元加号转换类型
    一元加号+能直接把字符串类型的currentPage转为数字,Angular模板支持这个操作,直接在比较条件里用就行:

    <ul *ngIf="(route.queryParams | async).page as currentPage">
      <!-- 注意:Angular(2+)里循环指令是*ngFor,不是AngularJS的*ngRepeat -->
      <li *ngFor="let page of pages" [ngClass]="{ 'active': +currentPage === page }">{{ page }}</li>
    </ul>
    
  • 把数字page转为字符串比较
    反过来,把数字类型的page转成字符串,和currentPage做全等比较:

    <ul *ngIf="(route.queryParams | async).page as currentPage">
      <li *ngFor="let page of pages" [ngClass]="{ 'active': page.toString() === currentPage }">{{ page }}</li>
    </ul>
    
  • 使用宽松相等(不推荐,但可用)
    直接用==做宽松相等比较,它会自动处理类型转换,但这种方式可能带来潜在的类型问题,仅当你能完全确定参数格式时使用:

    <ul *ngIf="(route.queryParams | async).page as currentPage">
      <li *ngFor="let page of pages" [ngClass]="{ 'active': page == currentPage }">{{ page }}</li>
    </ul>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:40:25