Pregunta

Traducir angular funciona bien para varios P's, H's y etiquetas usando el formato

<p translate>something</p>

es genial. Pero no puedo conseguirlo funcionando en los botones que tengan otro componente angular en ese botón, específicamente desplegables angulares. De hecho, cuando puse traducir al final de la>, rompe toda la página en la carga de la página y no funciona JavaScript. En la consola, recibo un error: [$ compilación: multidir] http://errors.angularjs.org/ 1.2.20 / $ compilación / multidir (etc., etc.)

El HTML es

<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>

El controlador angular para ese botón es

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);
}]);

El botón desplegable funciona, selecciona los idiomas y la traducción ocurre. MyApp tiene las cosas configuradas que se encuentran en los documentos de traducción angular - $ translateprovider.translations () tipo de cosas. Nuevamente, el problema es que cuando el atributo / instrucción de Traducir está en el botón, rompe toda la página en la carga de la página. Intenté traer $ $ Traducir al controlador anterior, pero no pudo hacerlo funcionando. ¿Qué tiene que cambiar?

¿Fue útil?

Solución

¿Está utilizando una versión anterior del traductor angular que la versión actual en GitHub?Porque si no, esa no es la sintaxis adecuada para ello.Use uno de los siguientes:

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

o:

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

Nota las citas alrededor de la clave de traducción en la expresión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top