如何根据angularjs中的语言变化设置rtl属性?

时间:2017-07-28 06:48:44

标签: javascript angularjs

您好我正在开发angularjs应用程序,它是英语和阿拉伯语的多语言应用程序。每当我选择阿拉伯语时,我想将rtl支持应用于html标签。会工作正常,但我想根据语言选择这样做。

以下是我的HTML代码

<div class="language">
 <a href="#" ng-click="changeLanguage(lang == 'de_AR' ? 'de_EN' : 'de_AR')">
  <img ng-src="images/{{ lang == 'de_AR' ? 'english.png' : 'arabic.png' }}" />
 </a>
</div>

下面是我的角度代码

$scope.changeLanguage = function (lang) {
  $scope.lang = lang == 'de_AR' ? 'de_AR' : 'de_EN';
  $cookieStore.put("PreferredLanguage", $scope.lang);
  $translate.use($scope.lang);
}

在上面的代码中,如果选择了语言,那么我想简单地添加。我尝试如下。

if($scope.lang="de_AR")
{
 $scope.rtl="rtl"
}

下面是我的html标签。

<html ng-app="RoslpApp"  dir="{{rtl}}">

以上代码不提供rtl支持。我可以帮忙解决这个问题吗?我可以知道我在这里遗失了什么吗?任何帮助,将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在$scope.lang上执行三元操作,以确定页面应该是ltr还是rtl

<html ng-app="RoslpApp" ng-controller="RoslpAppController"  dir="{{lang=='de_AR'?'rtl':'ltr'}}">

您必须在控制器范围内定义三元条件才能触发。因此,请将您的ng-controller放在html标记上,或将您的目录移到您定义的地方ng-controller