Как я могу сделать угловую работу с неизвестным количеством полей модели, которые вложены в свойство массива

ОБНОВЛЕНО: я обновил JSBin, чтобы исправить проблему с индексами и создать формальные поля для каждого свойства, а не пытаться передать массив свойств в формальный шаблон. Это позволило бы мне определить пользовательские и специфичные для свойства валидаторы, если это необходимо. Я до сих пор не знаю, правильный ли это подход, поэтому некоторые рекомендации будут приветствоваться.

У меня есть структура модели, подобная следующей, в которой каждый объект может иметь разные числовые свойства:

[
  {
    prop1: boolean,
    prop2: String,
    ...
    properties: [
      {
        key: String,
        value: String,
        description: String
      },
      ...
    ]
  },
  ...
]

Должно быть довольно просто передать массив объектов в шаблон формального типа и выполнить итерацию по массиву свойств каждого объекта (правильно?). Я думаю, что сложная часть будет заключаться в том, чтобы проверить каждый элемент в массиве свойств с помощью отдельных валидаторов.

Любые мысли о том, как я могу это сделать? Ключи четко определены, поэтому теоретически я мог бы создать некоторый угловой сервис, который сопоставляет ключ с объектом validators, но я не понимаю, как об этом сказать.

У меня есть рабочий JSbin здесь, который вроде как работает, но мне он кажется грязным.

Я хочу думать, что есть способ поместить ng-repeat в шаблон оболочки, но, глядя на формальный код, не похоже, что он формально может обрабатывать несколько элементов <formly-transclude> в оболочке - даже если он может обрабатывать несколько оболочек, поэтому, возможно, есть способ сделать это с несколькими обертками.


person icfantv    schedule 13.07.2015    source источник


Ответы (1)


На самом деле (кроме некоторых проблем со стилем, которые могут/должны быть решены с помощью css), я думаю, что ваша реализация в порядке. Я бы порекомендовал вам делать именно то, что вы делаете, создавая конфигурацию поля на основе модели, прежде чем передать ее угловой форме.

person kentcdodds    schedule 17.07.2015
comment
Не беспокойтесь и еще раз спасибо @kentcdodds. Вы очень помогли мне в этом году, и я ценю это. Что вы думаете о том, чтобы сделать пример этого для формального сайта? Или не стоит? - person icfantv; 18.07.2015
comment
Кажется, немного специфический вариант использования, я думаю, для примера. Спасибо хоть! - person kentcdodds; 20.07.2015