angular-translate不在具有其他组件的按钮中工作

时间:2014-08-01 17:53:41

标签: angularjs angular-translate

angular-translate适用于多个p,h,以及使用格式的标签

<p translate>something</p>

很棒。但我无法让它在按钮上工作,该按钮在该按钮上有另一个Angular组件,特别是角度下拉列表。事实上,当我把翻译放在&gt;的末尾时,它在页面加载时打破整个页面,没有Javascript工作。在控制台中,我得到错误:[$ compile:multidir] http://errors.angularjs.org/1.2.20/ $ compile / multidir(等等)

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带入上面的控制器,但无法使其正常工作。有什么需要改变?

1 个答案:

答案 0 :(得分:2)

您使用的是Angular Translate的旧版本而不是Github上的当前版本吗?因为如果没有,那不是正确的语法。使用以下之一:

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

或:

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

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