javascript - 如何使用 angularJs 在 html 值中显示 JSON 值?

标签 javascript html angularjs json

$scope.categories = [ {
      "advertiser_id": "2",
      "tier_id": 1,
      "tier_name": "1",
      "base_cpm_price": "",
      "retarget_cpm": "",
      "gender": "",
      "location": "",
      "ageblock1": "",
      "ageblock2": "",
      "ageblock3": "",
      "ageblock4": "",
      "ageblock5": "",
      "default": 1,
      "status": 1
    },
    {
      "advertiser_id": "2",
      "tier_id": 2,
      "tier_name": "2",
      "base_cpm_price": "",
      "retarget_cpm": "",
      "gender": "",
      "location": "",
      "ageblock1": "",
      "ageblock2": "",
      "ageblock3": "",
      "ageblock4": "",
      "ageblock5": "",
      "default": 1,
      "status": 1
    },
    {
      "advertiser_id": "2",
      "tier_id": 3,
      "tier_name": "3",
      "base_cpm_price": 1,
      "retarget_cpm": 1,
      "gender": 1,
      "location": 1,
      "ageblock1": 10,
      "ageblock2": 0,
      "ageblock3": 0,
      "ageblock4": 0,
      "ageblock5": 0,
      "default": 0,
      "status": 1
    }
  ];

我有一个 3 JSON 对象,我想使用 anjularJS 在 HTML View 中显示它。 但是当我尝试在 HTML 中显示时,0 值被视为空。

<tr ng-repeat="defaultsettings in listDefaultsettings >
   <td>{{defaultsettings.tier_name }}</td>
   <td>{{defaultsettings.base_cpm_price || '---'}}</td>
   <td>{{defaultsettings.retarget_cpm || '---'}}</td>
   <td>{{defaultsettings.gender || '---'}}</td>
   <td>{{defaultsettings.location || '---'}}</td>
   <td>{{defaultsettings.ageblock1 || '---'}}</td>
   <td>{{defaultsettings.ageblock2 || '---'}}</td>
   <td>{{defaultsettings.ageblock3 || '---'}}</td>
   <td>{{defaultsettings.ageblock4 || '---'}}</td>
   <td>{{defaultsettings.ageblock5 || '---'}}</td>
   <td class="td-active default-pricing">
</tr>

enter image description here

用 --- 代替 0,但我想显示值,即 0。

最佳答案

因为在 javascript 中 0 是假的。

console.log(0||1);
console.log(""||"abc");
console.log(undefined||"defined");
console.log(null||"notnull");

<小时/>

要解决这个问题,您可能会遇到这样的问题:使用 angular.isNumber()/angular.isString() 方法进行三元 if/else 操作:

// define a method which returns a value
$scope.isEmptyValue = function(val, dashes){
  return (angular.isNumber(val) || !angular.isString(val)) ? val : dashes;
}; 

现在在 View 中您可以执行以下操作:

<td>{{ isEmptyValue(defaultsettings.prop, "---") }}</td>

Checkout this at plnkr.

关于javascript - 如何使用 angularJs 在 html 值中显示 JSON 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42577829/

相关文章:

javascript - 第二个 Wordpress Ajax 未触发

javascript - JQuery - 如何使触摸和滚轮事件监听器为 `passive`

html - 父div的双倍高度?

jquery - 如何阻止 $http 将我的数据作为带引号的字符串发送?

javascript - 将 $compile 注入(inject)指令未定义

javascript - event.preventDefault();导航,同时仍然允许使用后退和前进按钮

javascript - Angular 指令 ng-bind-html 在某些情况下不起作用

css - Drupal 模块填充取决于背景颜色

javascript - AngularJS - 具有 ng-repeat 值的 ng-class

php - 在 PHP 中使用服务器代理的 HTTP POST 请求