Создайте HTML-код для каждого языка. Прослушайте событие $ translateChangeSuccess в контроллере и создайте URL-адрес для частичного при каждом изменении языка. Вместо этого используйте URL в своем представлении в директиве ngInclude.
V2, лучший подход
Ваш контроллер
myApp.controller('MyCtrl', ['$rootScope', '$scope', '$translate', function ($rootScope, $scope, $translate) {
($scope.setTranslatedPartials = function() {
$scope.translatedPartials = {
"partialOne": "/partials/partial_one_" + $translate.use() + ".html",
"partialTwo": "/partials/partial_two_" + $translate.use() + ".html"
//...
};
})();
$rootScope.$on("$translateChangeSuccess", function (event, next, current) {
$scope.setTranslatedPartials();
});
}]);
Ваше мнение
<div ng-controller="MyCtrl">
<ng-include src="translatedPartials.partialOne"></ng-include>
<ng-include src="translatedPartials.partialTwo"></ng-include>
</div>
V1 оригинальный подход
Ваш контроллер
myApp.controller('MyCtrl', ['$rootScope', '$scope', '$translate', function ($rootScope, $scope, $translate) {
/*Initialize first so you have it when coming back to the page without the langugage changing*/
$scope.partial = "/partials/" + $translate.use() + ".html"
$rootScope.$on("$translateChangeSuccess", function (event, next, current) {
$scope.partial = "/partials/" + $translate.use() + ".html"
});
}]);
Ваше мнение
<div ng-controller="MyCtrl">
<ng-include src="partial"></ng-include>
</div>
Кажется, мой ответ промахнулись. Вопрос немного расплывчатый относительно того, что вы ищете? Способ определения различного вида? Способ сохранения данных? –
Почему бы просто не использовать ng-include с именем html из переменной области. установите переменную в соответствии с языком и сделайте – harishr