2015-04-07 2 views
0

У меня есть AngularJS код для динамического создания элементов формы на основе массива с деталями формы (тип ввода, значения и т.д.)Угловой элемент negSwitch, скрывающий метки?

Вот пример кода, у меня есть для ввода текста:

<div ng-repeat="input in input_array"> 
    <div ng-switch on="input.input_type"> 
    <div ng-switch-when="text"> 
     <label class="item item-input"> 
     <input type="text" placeholder="Hello World"> 
     </label> 
    </div> 
    </div> 
</div> 

Как вы можете видеть, верхний уровень div повторяется для каждого элемента формы в массиве. Проблема заключается в том, что когда input.input_type равно «text», он не показывает , если Я удаляю теги label! Я пробовал делать теги label без каких-либо атрибутов (<label>...</label>), и он все еще не отображает ввод, если я не удалю их.

Это довольно странно, есть ли у кого-нибудь идеи, почему он это сделает? Благодаря!

EDIT: Теперь я попытался удалить input и ввод текста в (<label>Hello!</label>), и он показывает ..... так что просто не позволяет входы завернутые в label элемент? o.O

+0

Проверьте таблицы стилей. Может быть, 'label',' label.item' или 'label.item-input' имеет свойство display 'none'. [Это] (http://plnkr.co/edit/wLvwlieR01L5r6LN39EX?p=preview) работает. – IvanMalenko

+0

@IvanMalenko интересно .... этот код не работает в моем приложении. Наверное, я просто использую 'ng-if' для настоящего ... но я хотел бы выяснить, почему это не работает. – Caleb

+0

Можете ли вы написать примерное приложение, подобное вашему, что не работает или показать код вашего приложения? – IvanMalenko

ответ

0

Вам необходимо закрыть тег input.

<div ng-repeat="input in input_array"> 
    <div ng-switch on="input.input_type"> 
     <div ng-switch-when="text"> 
      <label class="item item-input"> 
       <input type="text" placeholder="Hello World"/> 
      </label> 
     </div> 
    </div> 
</div> 
Смежные вопросы