2016-11-03 118 views
0

我有一個應用程序的角度,可以翻譯法語和英語。我正在使用角度轉換來做到這一點。問題是:我從一個API接收一個對象數組,在這些對象中,我有一個屬性bookConditionEn和一個屬性bookConditionFr和其他類似的ID。AngularJS條件ng選項

在選擇輸入中,我想根據當前語言顯示bookCondition

在控制器中,我可以用$translate服務

  vm.getCurrentLanguage = function() { 
       return $translate.use(); 
      } 

所以,我不知道是否在視圖中,我可以在NG選項使用條件獲得當前的語言。

<select 
     ng-options="bookCondition.BookCondition for bookCondition in bookCtrl.bookConditions" 
     ng-model="bookCtrl.bookConditions" 
     name="Condition" class="form-control" 
    ></select> 

回答

1

您可以使用條件改變所創建的方式來顯示/隱藏選項<select>

<select ng-options=ng-model="bookCtrl.bookConditions" name="Condition" class="form-control"> 
    <option 
     ng-repeat="bookCondition.BookCondition for bookCondition in bookCtrl.bookConditions" 
     ng-if="vm.getCurrentLanguage==bookCondition.language" 
    > 
</select> 

我不太瞭解你的JSON設立所以我假設您有一個包含語言(bookCondition.language)的屬性。您可以將它與您的vm.getCurrentLanguage返回的用戶當前選擇的語言進行比較。順便說一句,我建議改變這種從功能僅僅是這樣一個變量:

vm.currentLanguage = $translate.use(); 

這應該是所有你需要做的指定條件的方式選擇。

0

它的工作你的方式

   <select ng-model="bookCtrl.bookCondition" name="Condition" class="form-control"> 
        <option ng-if="bookCtrl.getCurrentLanguage() === 'en'" ng-repeat="bookCondition in bookCtrl.bookConditions" value="{{bookCondition}}">{{bookCondition.BookCondition}}</option> 
        <option ng-if="bookCtrl.getCurrentLanguage() === 'fr'" ng-repeat="bookCondition in bookCtrl.bookConditions" value="{{bookCondition}}">{{bookCondition.BookConditionFr}}</option> 
       </select>