Динамическая генерация значения ng-options в компоненте AngularJS - PullRequest
0 голосов
/ 31 октября 2019

Я поддерживаю старый проект 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 - это привязка, которая содержит список всех возможных опций.

Есть идеи, как сделать что-то подобное?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...