Проверка ввода-вывода Polymer Dart не работает, если многострочный атрибут связан с выражением полимера
У меня странная проблема. У меня есть основной элемент ввода в моем пользовательском полимерном элементе. Я установил его как обязательный, поэтому, когда он пуст, атрибут недействителен. Я хочу, чтобы он также был многострочным, поэтому я установил атрибут multiline в true, и он работает нормально.
Если для атрибута multiline через выражение привязки установить значение true, проверка перестает работать.
Вот HTML-код:
<link rel="import" href="../../packages/polymer/polymer.html">
<link rel="import" href="../../packages/core_elements/core_input.html">
<polymer-element name="main-app">
<template>
<core-input label="Type something..." required={{required}} multiline?={{multiline}} value={{input}} invalid={{invalid}}></core-input><br>
invalid: {{invalid}}
</template>
<script type="application/dart" src="main_app.dart"></script>
</polymer-element>
И код Дартс:
import 'package:polymer/polymer.dart';
@CustomTag('main-app')
class MainApp extends PolymerElement {
@observable String input = '123';
@observable bool required = true;
@observable bool multiline = true;
@observable bool invalid;
MainApp.created() : super.created();
}
Я неправильно связываю многострочный атрибут?
1 ответ
Я не уверен, но, насколько я помню, не поддерживается переключение между одно- и многострочным после инициализации элемента. Кроме того, кажется, что эта возможность собирается быть полностью удалена.
- https://github.com/Polymer/core-input/commit/e185e5bbc6f623c3869e441843dc156c04405ad0
- https://github.com/Polymer/core-input/issues/44
core-input
был изменен так, чтобы он расширялся <input>
и если вы хотите использовать мультилинию, вы должны использовать <textarea>
вместо.
Это было совершено 17 дней назад. Документы для Polymer.js пока не отражают эти изменения.