javascript – 使用AngularJS和Angular Translate如何检查字符串是否已被翻译?

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...