Estoy tratando de usar gettext en combinación con ngSwithc, de la siguiente manera:
<ANY ng-switch="expression">
<ANY ng-switch-when="matchValue1" translate>...</ANY>
<ANY ng-switch-when="matchValue2" translate>...</ANY>
<ANY ng-switch-default translate>...</ANY>
</ANY>
aquí Es un jsfiddle demostrando el problema. El error que recibo es
Error: [$compile:multidir] Multiple directives [ngSwitchWhen, translate] asking for transclusion on: <div ng-switch-when="opt0" translate="">
¿Alguna sugerencia de cómo puedo usar gettext en combinación con ngSwitch?
Respuestas
3 para la respuesta № 1Arreglo simple es mover translate
atribuir a otra etiqueta dentro de la switch
etiquetas
1 para la respuesta № 2
He resuelto esto de una manera ligeramente diferente haciendo uso de un servicio de traducción y tal.
<div>
<select class="form-control" id="selectLocale" ng-model="selectedLocale"
ng-options="locale as translate(locale.name) for locale in locales">
</select>
</div>
Esto me permitió agregar una función en el $ scope para obtener la cadena traducida llamando
$scope.translate = function(str) {
return LanguageService.getTranslatedString(str);
};
Ahora, cada vez que la selección se itera a través de la matriz, llamará a esta función para traducir la cadena por usted. Para obtener más información sobre la etiqueta de selección, echa un vistazo a un AngularJS: API: directiva select en la documentación.
Por favor visite mi entrada de blog Fragmentos de un texto de texto angular Para más información en profundidad.