2017-03-16 15 views
0

htmlの(パイプ式を使用して)日付値を表示するのが目的ですが、その日付が存在する場合にのみ表示されます。 そのフィールドがnullに戻った場合は、コントローラーのjsコードのN/Aに置き換えます。htmlビューの角度ng-if式

これはシンプルであるべきだと思いますが、問題が発生しています。

これは現在、日付を表示します。または、日付がnullの場合は空白になります。

<div> 
 
    <label> 
 
    {{ctrl.data.myDate | stringToDate:'yyyy-MM-dd'}} 
 
    </label> 
 
</div>

私がしようとしている:

<div> 
 
     <label> 
 
     <span ng-if="ctrl.data.myDate!='N/A'"> 
 
      {{ctrl.data.myDate | stringToDate:'yyyy-MM-dd'}} 
 
     </span> 
 
     </label> 
 
     
 
     <label> 
 
     <span ng-if="ctrl.data.myDate=='N/A'"> 
 
      N/A 
 
     </span> 
 
     </label> 
 
     
 
</div>

をしかし、日付がN/Aあるとき、それはnullを表示しています。

これは動作しますが、パイプ式なし - しかし、私はパイプに適切に日付文字列が必要です。

<span>{{vm.data.myDate==='N/A' ? "N/A" : vm.data.myDate }}</span> 

UPDATE

私が使用できる場所私は別のアプローチをしようとしているが角度$filterプロバイダ。 myDateがNULLでない場合ので、私は私のjsコントローラで日付をフォーマットすることができます。

vm.data.myDate = $filter('date')(new Date(data[0].closeDate), 'yyyy-MM-dd'); 
+1

パイプは1バー( '|')です。 2つのバー( '||')はOR演算子 – mhodges

+0

、おそらくhtmlに埋め込まれた3進表現ですか? –

+1

'ctrl.data.myDate'は文字列" N/A "と同じです** **の前には日付フィルタが実行されますか? – mhodges

答えて

1
<span> 
{{ (vm.data.myDate==='N/A' || !vm.data.myDate) ? "N/A" : (vm.data.myDate | date:'yyyy-MM-dd') }} 
</span> 
+0

を表示するだけで、何も表示しません。私の日付は今は空白です。私の仕事で言及しているように、これはうまくいきますが、パイプ(私がやりたいことではない)を取り除いた場合に限り - {{vm.data.myDate === 'N/A'? "該当なし":vm.data。myDate}}

+0

@ bob.mazzoパイプを外していませんでした。 '| ' –

+0

ありがとうございます。私はちょうどあなたの答えは空白の値を表示すると言っています。私は同じことをやってみました。親と親の間に日付とパイプを埋め込んでいます(しかし動作しません)。 –

1

ビューの値と1つの変数でモデルの値を持つことは間違ったアプローチです。次のいずれかに従う必要があります。

ストアのみのモデル値を、あなたはnullにすることができjsの中の日付を持っている、とhtmlで:

{{ctrl.data.myDate | date:'yyyy-MM-dd' || 'N/A'}} 

それとも、その後、あなたがそれを解析する必要があり、また保存した値を表示しますコントローラ:

 ctrl.data.myDateText = $filter('date')(ctrl.data.myDate, 'yyyy-MM-dd'); || 'N/A' 
in html: {{ctrl.data.myDateText}} 
+0

@Peter - 2番目のアプローチは私の2番目のアプローチでした(私のOPの私のUPDATEノートを参照)。ありがとうございました。 –