настройка типа ввода в ng-repeat

0

У меня есть список полей ввода в параметрах. Теперь я добавляю эти поля ввода на свою страницу, используя ng-repeat.

<input type="text"> 

У меня есть свои типы ввода в том же объекте параметров, который повторяется. Эти типы: String, Varchar и т.д.

Теперь я хочу установить тип поля ввода в соответствии с типом параметра, который у меня есть.

Вот что я хочу сделать

<tr ng-repeat = "option in options">
<td><input type="text" ></td>
</tr>

У меня есть параметр с именем option.Paramtype, который содержит тип каждого поля ввода. Я хочу установить тип поля ввода как число, если он является Int и так далее.

Пожалуйста помоги.

Теги:

2 ответа

1
Лучший ответ

Учитывая, что у вас есть множество параметров, таких как:

options = [
  {Paramtype:'String', foo:25, bar:'Unicorn'},
  {Paramtype:'int', foo:30, bar:'Kitten'},
  {Paramtype:'Email', foo:28, bar:'Dragon'},
  {Paramtype:'Date', foo:15, bar:'Kanye'}
]

Внутри блока ng-repeat вы можете использовать ng-if чтобы проверить свойство Paramtype и соответствующим образом задать тип ввода. Вот так:

<tr ng-repeat = "option in options">
    <td>
        <input ng-if="option.Paramtype == 'String'" type="text">
        <input ng-if="option.Paramtype == 'int'" type="number">
        <input ng-if="option.Paramtype == 'Email'" type="email">
    </td>
</tr>

Надеюсь, что это поможет

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

options = [
  {Paramtype:'String', inputType:'text', bar:'Unicorn'},
  {Paramtype:'int', inputType:'number', bar:'Kitten'},
  {Paramtype:'Email', inputType:'email', bar:'Dragon'},
  {Paramtype:'Date', inputType:'datetime', bar:'Kanye'}
]

<table>
    <tr ng-repeat = "option in options">
      <td><input type="{{option.inputType}}"></td>
    </tr>
</table>
  • 0
    в первом случае я получаю несколько добавленных за один
  • 0
    Директива ng-switch была создана именно для случая использования, описанного в вашем ответе.
Показать ещё 1 комментарий
0

Я просто предлагаю вам использовать директиву ng-attr чтобы динамически устанавливать значение атрибута type Чтобы сделать вашу реализацию более чистым, вы должны поддерживать один объект, который будет отображать What Paramtype в качестве типа ввода. Затем мы могли бы использовать переменную mappingOfTypes со своим индексом для заполнения значения атрибута type поля ввода.

наценка

<tr ng-repeat = "option in options">
    <td><input ng-attr-type="{{mappingOfTypes[option.Paramtype]}}" ></td>
</tr>

контроллер

$scope.mappingOfTypes = ["String": "text", "Int": 'number'];
  • 0
    тебе это помогло ??

Ещё вопросы

Сообщество Overcoder
Наверх
Меню