2017-07-28 87 views
1

嗨,我正在開發angularjs應用程序,它是與英語和阿拉伯語的多語言應用程序。每當我選擇阿拉伯語言,我想將rtl支持應用於html標籤。將工作正常,但我想根據語言選擇做到這一點。如何根據angularjs中的語言更改設置rtl屬性?

下面是我的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支持。我可以幫助解決這個問題嗎?我可以知道我在這裏錯過了什麼嗎?任何幫助,將不勝感激。謝謝。

+0

謝謝Vivz。我改變了,但它不工作。我檢查過,我可以在html元素中看到dir =「」class =「ng-scope」。 –

+0

嘗試使用ng-class =「{'directions':lang =='de_AR'}」.directions {direction:rtl; } – Vivz

+0

我添加爲。我應該在控制器中寫什麼? –

回答

1

你可以做$scope.lang三元操作來決定頁面是否應該被LTR或RTL

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

你必須定義控制器的範圍之內的三元條件來觸發。所以,把你的ng-controller上的HTML標記或移動您的目錄所在的地方要定義ng-controller

相關問題