2017-03-03 33 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 
    } 
    ]; 

私は、HTMLビューでanjularJSを使用して表示したい3つのJSONオブジェクトを持っています。 しかし、HTML 0の値で表示しようとしているときに、空白とみなしています。JSON値をangularJsを使用して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

そのはに置き換え---しかし、私はfalsyされているため、JavaScriptの0に0

+3

javascriptで「0」が偽であるためです。 – Jai

+0

どうすればこの問題を解決できますか@Jai –

+0

'expr> = 0? expr: "---"はあなたのためにそれを行う必要があります。 – Jai

答えて

1

すなわち、値を表示したいです。

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空値に1つまたは条件を追加するだけです。 – Jai

+0

​​{{(defaultsettings.retarget_cpm> = 0 || defaultsettings。 retarget_cpm!= "")?defaultsettings.retarget_cpm: '---'}} '上記のコードを使用していますが、同じ問題を表示できません... ... plz help me @jai –

0

terenary演算子を使用してtdの値を変更して値の存在を確認します。それが存在しない場合は、次に印刷するだけです---

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

作業中です.0が表示されていますが、空の値が表示されていません:( –

0

より良い偽の値を確認するための条件を置き換えます。

<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が

を次のようになります(私はあなたがここにfalsy値として ""を使用していると考えています)
<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> 
関連する問題