2015-04-15 4 views
1

Я использую angular-gettext, angular-breadcrumb и angular-ui-router.Как использовать угловой-gettext в фазе конфигурации?

У меня есть конфигурация приложения, похожее на это:

app.config(function($stateProvider) { 

    $stateProvider.state('welcome', { 
    url : '/', 
    templateUrl: 'index.html', 
    ncyBreadcrumb : { 
     label : 'Home' 
    } 
    }); 

}); 

Я хотел бы иметь возможность перевести метку ('Home' навигационной цепочки) по angular-gettext. Для этого мне нужно включить инструменты gettext в функцию app.config(). Нечто подобное было бы идеально, однако gettextCatalog не доступен на этапе настройки:

app.config(function($stateProvider, gettextCatalog) { 

    $stateProvider.state('welcome', { 
    url : '/', 
    templateUrl: 'index.html', 
    ncyBreadcrumb : { 
     label : gettextCatalog.getString('Home') 
    } 
    }); 

}); 

Есть ли другой способ достичь этого с помощью этих плагинов, особенно с angular-gettext?

ответ

3

Согласно angular-breadcrumb документам:

Свойства ncyBreadcrumbLabel может, содержит привязки, которые оценены в отношении объема текущего состояния контроллера.

Я не проверял, но я думаю, вы могли бы использовать gettextCatalog модуль в контроллере:

$stateProvider.state('home', { 
    url: '/', 
    templateUrl: 'index.html', 
    controller: function($scope, gettextCatalog) { 
    $scope.label = gettextCatalog.getString('Home'); 
    }, 
    ncyBreadcrumb: { 
    label: '{{label}}' 
    } 
}) 
+1

Это, вероятно, лучшим решением. Другая возможность - [этот] (https://github.com/ncuillery/angular-breadcrumb/issues/65). Даже «label:» {{label | translate}} 'работает тоже, однако ни одно из этих двух выражений не обнаружено с помощью экстракции «grunt-angular-gettext», поэтому они бесполезны. –

Смежные вопросы