2017-03-03 60 views
0
$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视图中显示。 但是,当试图显示在HTML 0值正在考虑为空。如何在html值中显示JSON值,因为它使用的是angularJs?

<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

+3

因为在javascript'0'中如果出错。 – Jai

+0

那么我该如何解决这个问题@Jai –

+0

'expr> = 0? expr:“---”'应该为你做。 – Jai

回答

1

由于在JavaScript 0是falsy。

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


为了解决你可能会在与三元的问题,如果有angular.isNumber()/angular.isString()方法,这种方法/其他操作:

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

现在在视图中,你可以做这个:

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

Checkout this at plnkr.

+0

其工作.. 0显示,但为空值---不显示:( –

+1

@PuneethKumar只是为空值添加一个或条件。 – Jai

+0

'​​{{(defaultsettings.retarget_cpm> = 0 || defaultsettings。我不知道如何使用上面的代码,但同样的问题..不能显示--- .. plz帮助我@jai –

0

使用terenary运算符修改您的td以检查值的存在性。如果不存在,只能打印---

<td>{{(defaultsettings.retarget_cpm != null || defaultsettings.retarget_cpm !== "") ? defaultsettings.retarget_cpm : '---'}}</td> 
+0

其工作.. 0显示,但为空值---不显示:( –

0

替换条件检查更好的falsy值。 (我相信你正在使用""作为falsy值这里)

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

0

你可以写在同一

angular.module("my_module_name").filter('ignoreZeroAsFalse', ignoreZeroAsFalse); 

function ignoreZeroAsFalse() { 
    return filterDefinition; 

    function filterDefinition(input) { 
     return (input || input === 0)? input : '---'; 
    } 

} 

一个过滤器,你的HTML将成为像以下

<td>{{defaultsettings.base_cpm_price | ignoreZeroAsFalse}}</td> 
<td>{{defaultsettings.retarget_cpm | ignoreZeroAsFalse}}</td> 
<td>{{defaultsettings.gender | ignoreZeroAsFalse}}</td> 
<td>{{defaultsettings.location | ignoreZeroAsFalse}}</td> 
<td>{{defaultsettings.ageblock1 | ignoreZeroAsFalse}}</td> 
<td>{{defaultsettings.ageblock2 | ignoreZeroAsFalse}}</td> 
<td>{{defaultsettings.ageblock3 | ignoreZeroAsFalse}}</td> 
<td>{{defaultsettings.ageblock4 | ignoreZeroAsFalse}}</td> 
<td>{{defaultsettings.ageblock5 | ignoreZeroAsFalse}}</td>