pascalprecht.translate не работает с атрибутом элемента начальной загрузки-filestyled-file-form-element
Я подготовил вантуз, чтобы увидеть проблему: Angular Translate Example
Перевод работает в общем, единственное исключение - это поле атрибута элемента формы-файла-начальной загрузки.
<div class="form-group">
<!-- APP_USER_IMAGE -> WORKS -->
<label class="control-label col-sm-3" for="image">
"{{ 'APP_USER_IMAGE' | translate }}"
</label>
<div class="col-md-6">
<!-- APP_FILE_UPLOAD_TXT -> DOES NOT WORK -->
<input type="file" filestyle=""
id="image"
name="image"
ng-model="tempData.image"
data-button-text="{{ 'APP_FILE_UPLOAD_TXT' | translate }}"
data-class-button="btn btn-default"
data-classinput="form-control inline"
nv-file-select=""
class="form-control" />
</div>
</div>
Что я делаю неправильно?
2 ответа
Решение
Удалось получить переведенное значение в filestyle
директива:
function link(scope, element) {
var options = element.data();
$translate('APP_FILE_UPLOAD_TXT').then(function (text) {
options.buttonText = text;
element.filestyle(options);
});
}
Смотрите обновленный плункер
С 2 модификациями вы можете использовать решение с каждым файловым элементом, не касаясь директивы каждый раз:
1) По мнению
data-button-text="APP_FILE_UPLOAD_TXT"
2) В директиве
function filestyle($translate) {
var directive = {
strict: 'A'
};
return directive;
function link(scope, element) {
var options = element.data();
// old usage support
options.classInput = element.data('classinput') || options.classInput;
$translate(options.buttonText).then(function(text) {
options.buttonText = " " + text;
element.filestyle(options);
});
}
}