2016-08-24 24 views
1

默認情況下,如果我嘗試使用$translate服務或translate過濾器翻譯不存在的密鑰,則會返回密鑰本身。使用ng-translate翻譯不存在的密鑰

例如$translate.instant('no.such.key') === 'no.such.key'

有沒有辦法改變這個(每調用,而不是全局),以便返回null

或者,ng-translate是否提供比此更簡潔的方式來顯示只有存在的翻譯?

<div ng-if="('no.such.key' | translate) !== 'no.such.key')"> 
    {{'no.such.key' | translate}} 
</div> 

回答

0

有一個自定義錯誤處理程序,您可以在其中控制無法找到密鑰時顯示的文本。

https://angular-translate.github.io/docs/#/guide/17_custom-error-handler

我複製和粘貼此頁下面的示例。

app.factory('customTranslationHandler', function() { 
    return function (translationID, uses) { 
    // return the following text as a translation 'result' - this will be 
    // displayed instead of the language key. 
    return 'NO DEFAULT KEY'; 
    }; 
}); 

也許最好是你會寧願記錄丟失的鍵。見https://angular-translate.github.io/docs/#/guide/16_error-handling

相關問題