如何检查字符串是否具有翻译值?我正在使用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>
这工作正常,但我想知道是否有更好的方法这样做?
解决方法
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>