Я поддерживаю старый проект AngularJS (1.6). В какой-то момент у меня есть компонент, который отображает список (выберите вход). Опции поля, которые загружаются динамически, используя ng-options.
Я хотел бы сгенерировать значение ng-options (.. as .. for .. in .. track by ..
).
Эта строка должна быть сгенерирована в компонентеконтроллер, используя $onInit
, чтобы получить привязки. Да, потому что все имена полей, которые будут использоваться в строковом значении ng-options, будут на самом деле взяты из привязок.
Так что в моем контроллере я хотел бы сделать что-то подобное:
this.$onInit = function() {
this.options_string = (this.val1 ? 'obj[' + this.val1 + ']' : 'obj') + ' as ' + (this.val2 ? 'obj[' + this.val2 + ']' : 'obj') + ' for obj in $ctrl.options' + (this.trackby ? ' track by obj[' + this.trackby + ']' : '');
};
Тогда в моем шаблоне все, что мне нужно сделать, это:
<select ng-options="$ctrl.options_string" ...></select>
Но, очевидно, это не работает. Глядя на options_string
, я получаю что-то вроде этого:
obj как obj [имя] для obj в треке $ ctrl.options по obj [url]
где$ctrl.options
- это привязка, которая содержит список всех возможных опций.
Есть идеи, как сделать что-то подобное?
Спасибо.