Я ищу предложения о том, как сделать следующее:
У меня есть "перевод" для преобразования ключей в строку (для локализации). Директива "local" называет это. Это выглядит так:
<local>key</local>
Это просматривает "ключ" в данных перевода и возвращает его значение, а затем заменяет собой значение. поэтому, возможно, ключ "имя пользователя" возвращает значение "Имя пользователя" для включения в страницу.
Проблема: я хочу поддерживать строки с "значениями", например, ключ "minLength" имеет строковое значение "Минимальная длина - это символы {0}". Я хотел бы что-то вроде следующего:
<local>
<key>minLength</key>
<val>{{policy.minLength}}</val>
</local>
Я попал в проблему, когда значение $ scope.policy еще не было установлено к тому времени, когда <local>
оценивается (на его фазе ссылок).
Я предполагаю, что, поскольку я заменяю "локальный" тег на значение, фактический тег не прилипает, чтобы его снова оценивали, когда $ scope.policy.minLength действительно имеет значение.
Может кто-нибудь дать мне представление, как это сделать? Я искал материал на интерполяции $, но я думаю, что <local>
заменяет: true убивает меня здесь. Любые идеи, как обойти это?
Я понял, как это сделать. Используя приведенный выше пример:
<val>
.<val>
. Это значение будет "Минимальная длина - {{policy.minLength}} символы".<local>
на <span>
(т.е. Эквивалент "replace: true")<span>
на новое значение.Вы должны установить свою директиву для трансляции, а также использовать встроенную директиву для управления оценкой внутреннего оператора.
Посмотрите, поможет ли это: https://docs.angularjs.org/api/ng/directive/ngTransclude
$scope
в выражение Angular{{policy.minLength}}
.