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

AngularJS调用JSON API获取24h_volume_usd字段返回null求助

解决AngularJS中访问带连字符API属性的问题

这个问题我太熟悉了!你碰到的问题本质是JavaScript属性访问的语法规则——当属性名包含连字符(比如24h_volume_usd里的-)时,用点号(.)访问是无效的,因为点号要求属性名是合法的JavaScript标识符(不能包含特殊字符,比如连字符)。

直接修复方案(最快)

把模板里的表达式改成方括号语法,就能正确访问带连字符的属性:

<div ng-repeat="moeda in moedas">
  24小时交易量:{{ moeda['24h_volume_usd'] }}
</div>

更优雅的进阶方案(属性名转换)

如果觉得方括号语法不够直观,可以在控制器获取数据后,把带连字符的属性名转换成驼峰式,方便后续模板使用:

// 假设你用$http请求数据
$http.get('https://api.coinmarketcap.com/v1/ticker/?limit=0')
  .then(function(response) {
    // 遍历API返回的数组,转换属性名
    $scope.moedas = response.data.map(function(crypto) {
      return {
        name: crypto.name,
        symbol: crypto.symbol,
        // 把24h_volume_usd转换成驼峰式24hVolumeUsd
        24hVolumeUsd: crypto['24h_volume_usd'],
        priceUsd: crypto.price_usd,
        // 其他需要的属性...
      };
    });
  });

之后模板里就可以用更简洁的点号访问了:

<div ng-repeat="moeda in moedas">
  24小时交易量:{{ moeda.24hVolumeUsd }}
</div>

额外提示:处理空值情况

有些加密货币可能没有统计24小时交易量,API会返回null,你可以给个默认值优化显示:

<!-- 用||设置默认文本 -->
24小时交易量:{{ moeda['24h_volume_usd'] || '暂无数据' }}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:06:47