如何检查字符串是否具有转换后的值?我正在使用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>

关于javascript - 使用AngularJS和Angular Translate如何检查字符串是否已翻译?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20314095/

10-16 08:33