2016-08-09 5 views
0

以下のエラーメッセージが表示されます(同じオブジェクトを使用しています)。フィルタが動作しているにもかかわらず、角度フィルタが「補間できません」というエラーが発生しました

app.filter('dateFormat', function dateFormat($filter){ 
    return function(text){ 
    var tempdate= new Date(text.replace(/-/g,"/")); 
    return $filter('date')(tempdate, "dd-MM-yyyy"); 
    } 
}); 

Can't interpolate: {{ job.job_date | dateFormat}} 
TypeError: text is undefinedO/<@http://localhost/ef-serial-numbers/public/assets/global/plugins/angularjs/angular.min.js:6:[email protected]://localhost/ef-serial-numbers/public/assets/global/plugins/angularjs 

私はハードコードされた日付にjob.job_dateを変更すると、エラーが表示されなくなります。問題は、フィルタは実際にはエラーに関係なく正しく動作していることです。

+1

'.replace'を呼び出す前に' text'が定義されていないかどうかを確認することはありますか? – MMhunter

+0

@MMHunterのコメントは解決策として正しいと思います。この動作の理由は、 'job.job_date'が' undefined'を開始してからすぐに値を取得する(おそらく、ちょうど推測です)。最初のダイジェストは例外をスローし、2番目のダイジェストは正しい値を表示し、フィルタは明らかに「動作します」。 –

+0

@Lock with pleasure xD。 – MMhunter

答えて

2

.replaceを呼び出す前にtextが未定義であるかどうかを確認することがあります。

job.job_dateがその値を取得する前に、フィルタ関数が最初に呼び出されることがあるからです。

+0

回答を投稿してくれてありがとう –

関連する問題