2016-11-11 2 views
1

Я использую компонент углового 1,5 и пытаюсь выполнить угловую передачу с параметрами. Вот моя разметка:Параметры углового преобразования с контроллером в качестве синтаксиса

Value is {{$ctrl.minFormatted}} 
<div ng-message="dateRange" class="error-message">{{'invalidRange' | translate:'{ start: $ctrl.minFormatted, end: $ctrl.maxFormatted}'}}</div> 

Сообщение переводится, за исключением того, что оно не заполняет параметры. Я проверил $ ​​ctrl.minFormatted имеет значение, отображая прямо над переводом.

В прошлом, когда я использовал стандартный угловой контроллер, я использовал $ scope.minFormatted. Однако это не сработало, так как я использую контроллер как синтаксис

ответ

2

, как указано в документации (https://angular-translate.github.io/docs/#/guide/06_variable-replacement), их наилучшая практика использования переменных в трансляционном фильтре будет передавать значение переменной фильтру из области видимости , например:

<div ng-message="dateRange" class="error-message">{{'invalidRange' | translate:$ctrl.translationValues}}</div> 

определяет значение в контроллере:

$scope.trasnlationValues = { "start": $ctrl.minFormatted, "end": $ctrl.maxFormatted}; 

лучший способ (и способ более читаемый) достичь того же будет с помощью -перевод директива. например:

<div ng-message="dateRange" class="error-message" **translate**="invalidRange" **translate**-values='{ start: $ctrl.minFormatted, end: $ctrl.maxFormatted}'></div> 

рекомендуем вам изучить их документацию для получения более подробной информации

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