0

angular-translate 适用于使用格式的多个 p、h 和标签

<p translate>something</p>

这很棒。但是我不能让它在那个按钮上有另一个 Angular 组件的按钮上工作,特别是 angular-dropdowns。事实上,当我将 translate 放在 > 的末尾时,它会在页面加载时破坏整个页面,并且没有 Javascript 工作。在控制台中,我得到 Error: [$compile:multidir] http://errors.angularjs.org/1.2.20/ $compile/multidir (etc., etc.)

HTML是

<div id="leftOfMap" class="floatingSection" data-ng-controller="languageController">
    <ul>
        <li class="leftOfMapItem"><button id="languageButton" dropdown-menu="ddMenuOptions" dropdown-model="ddMenuSelected" class="btn-menu">Language</button></li>
        <li class="leftOfMapItem" translate>BIKE PATHS</li>
    </ul>
</div>

该按钮的 Angular 控制器是

residenceApp.controller('languageController', [ '$scope', 'changeLanguage',
function( $scope, changeLanguage ) {
var languageChoices = [
    {"text": "English", "val": "en"},
    {"text": "Espanol", "val": "es"}
];
$scope.ddMenuOptions = languageChoices;
$scope.ddMenuSelected = {};
$scope.$watch('ddMenuSelected', function(newVal) {
    if (newVal && newVal.text) {
        changeLanguage(newVal.val); //eg., changeLanguage(es);
        //changeLanguage() is the name of a factory service
    }
}, true);
}]);

下拉按钮起作用,选择语言并进行翻译。myApp 具有 angular-translate 文档中的配置内容 - $translateProvider.translations() 之类的东西。同样,问题是当按钮上的翻译属性/指令时,它会在页面加载时破坏整个页面。我尝试将 $translate 带入上述控制器,但无法使其正常工作。有什么需要改变的?

4

1 回答 1

2

你使用的 Angular Translate 版本是否比 Github 上的当前版本旧?因为如果不是,那不是正确的语法。使用以下方法之一:

<li class="leftOfMapItem" translate="BIKE PATHS"></li>

或者:

<li class="leftOfMapItem">{{ 'BIKE PATHS' | translate }}</li>

注意表达式中翻译键周围的引号。

于 2014-08-01T18:29:02.800 回答