Полимерната желязна форма не работи

Имам следното маркиране в моя html:

<form is="iron-form" login-form>
    <paper-input label="Email" type="email" name="email"></paper-input>
    <paper-input label="Password" type="password" name="password"></paper-input>
    <paper-button class="self-end btn-primary" raised login-btn>Login</paper-button>
</form>

В chrome формата никога не се надгражда до желязна форма, но работи добре във firefox. Мога обаче да използвам: document.createElement('form', 'iron-form');, за да създам желязна форма, която е правилно надстроена. Това ме подлудява. Някакви идеи? Благодаря


person Greg Neiheisel    schedule 12.06.2015    source източник
comment
Този фрагмент изглежда правилен, подозирам, че проблемът е другаде. Можете ли да публикувате цялата страница, съдържаща този формуляр?   -  person Zikes    schedule 12.06.2015
comment
@Zikes, моят html се изобразява динамично с помощта на meteor (blaze). Елементът се импортира правилно, защото работи във firefox и мога задължително да създам iron-forms преди момента, в който моят действителен шаблон, съдържащ iron-form, бъде изобразен. Също така се опитах да включа iron-input в моя шаблон, за да тествам дали това е проблем с разширяването на базовите елементи. И двата елемента използват атрибута is, но iron-input работи перфектно!   -  person Greg Neiheisel    schedule 12.06.2015


Отговори (1)


Не съм сигурен защо iron-input трябва да работи по различен начин. Сигурни ли сте, че въвеждането на желязо работи перфектно като полимерен елемент, когато го създавате в шаблона? (Например, има ли помощни функции като debounce?) Питам, защото изглежда като стандартен вход.

Разглеждайки кода на Meteor, не изглежда, че някои елементи за разширение на типа трябва да работят. Доколкото мога да преценя, изглежда, че цялото създаване на тагове минава през тук:

https://github.com/meteor/meteor/blob/832e6fe44f3635cae060415d6150c0105f2bf0f6/packages/blaze/materializer.js#L99

За да се справя с потребителски елементи с разширение на тип, мисля, че това се нуждае от друг клон, който прави нещо като:

} else if (tag.attrs && ('is' in tag.attrs)) {
  // type-extension custom element
  elem = document.createElement(tagName, tag.attrs[is]);     
} else {
  // normal elements
  elem = document.createElement(tagName);
}

Двата аргумента createElement ще работят само ако имате собствена поддръжка на персонализирани елементи или сте инсталирали polyfill, така че Meteor може да поиска да се справи с това по друг начин.

person DocDude    schedule 12.06.2015
comment
Да, трябваше да се разровя и стигнах до същото заключение. Хаха, благодаря! - person Greg Neiheisel; 14.06.2015
comment
Свързан въпрос.. Оценявам, ако можете да помогнете по този въпрос - как да накарам meteor да се справи с това? forums.meteor.com/t/support- for-polymers-is-iron-form-attribute/ - person kctang; 01.07.2015