簡體   English   中英

如何在ng-dropdown-multiselect上使用角度轉換

[英]How to use angular translate on ng-dropdown-multiselect

在我的AngularJS應用中,我使用了角度轉換來實現國際化。

但是它不適用於ng-dropdown-multiselect文本。

我試圖將翻譯文本與$ scope變量相關聯,並應用$ scope。$ watch等待更改,但它也無法正常工作。

有人知道如何使其成為多國語言嗎?

<div
    ng-dropdown-multiselect="" 
    options="myModelOptions" 
    selected-model="mySelectedItem" 
    extra-settings="mySettings" 
    translation-texts="{
        'checkAll': myScopeVariable.selectAll,
        'uncheckAll': myScopeVariable.selectNone,
        'buttonDefaultText': myScopeVariable.selectZero,
        'selectionCount': myScopeVariable.selectCount,
        'dynamicButtonTextSuffix': myScopeVariable.selectSufix
    }">
</div>

您無需監視作用域,它們提供的translation-texts屬性僅在構建dom時起作用。 您可以通過在每次更改語言時重新構建選擇來使用技巧。

1-添加條件以顯示選擇,例如ng-if="!unready" 並直接使用translate過濾器。

<div ng-if="!unready" ng-dropdown-multiselect="" options="cars" selected-model="selectedCar" extra-settings="mySettings" translation-texts="{
        'checkAll': ('selectAll' | translate),
        'uncheckAll': ('selectNone' | translate),
        'buttonDefaultText': ('selectZero' | translate),
        'selectionCount': ('selectCount' | translate),
        'dynamicButtonTextSuffix': ('selectSufix' | translate)
    }">
  </div>

2-如果更改按鈕的按鈕不在同一個控制器中,則捕獲語言更改檢測,並將變量設置為不顯示選擇,增加一點超時以再次顯示它,以便重新呈現選擇。

$rootScope.$on('$translateChangeSuccess', function(event, current, previous) {
        // Language has changed
        $scope.unready = true;
        $timeout(function() {
            $scope.unready = false;
        }, 10);
    });

工作中的小伙子https://embed.plnkr.co/2psHUD/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM