如何检查字符串是否有翻译值?我使用的是AngularJS和AngularTranslate。
我只想显示一个值,如果它已经被翻译。如果没有可用的翻译,Angular Translate将显示未翻译的字符串。
我开始这样做:
<div ng-if="question.text | translate != question.text">{{ question.text | translate }}</div>但这不起作用,因为比较发生在翻译过滤器完成其工作之前。(至少我认为这是发生的事情)。
我最终做的是:
.filter('isTranslated', function(){
return function(translatedVal, originalVal){
return (translatedVal === originalVal) ? false : true;
}})
<div ng-if="question.text | translate | isTranslated:question.text">{{ question.text | translate }}</div>这很好用,但我想知道有没有更好的方法?
发布于 2013-12-06 22:24:53
Angular-translate还提供了a service,因此您可以围绕它构建自己的过滤器:
.filter('myTranslate', function($translate){
return function(key){
var translation = $translate(key);
if(translation==key) {
return "";
} else {
return translation;
}
}这将使您的HTML更加整洁:
<div>{{ question.text | myTranslate }}</div>发布于 2018-01-16 23:35:37
现在,如果找不到翻译,您可以使用a custom error handlerhttps://angular-translate.github.io/docs/#/guide/17_custom-error-handler返回一个空字符串。
发布于 2019-01-09 19:07:25
翻译“!(question.text|*ngIf=)”
https://stackoverflow.com/questions/20314095
复制相似问题