我面临一个奇怪的问题。我的自定义聚合物元素中有一个核心输入元素。我将其设置为必需,因此当它为空时,无效属性为真。我也希望它是多行的,因此我将属性 multiline 设置为 true 并且它工作正常。
如果我通过绑定(bind)表达式将属性 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>
还有 Dart 代码:
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();
}
我是否以错误的方式绑定(bind)多行属性?
最佳答案
我不确定,但据我所知,在元素初始化后不支持在单行和多行之间切换。除此之外,似乎此功能即将被完全删除。
core-input
已更改,使其扩展 <input>
如果你想使用多行,你必须使用 <textarea>
反而。这是 17 天前提交的。 Polymer.js 的文档尚未反射(reflect)这些更改。
关于data-binding - 如果多行属性绑定(bind)到聚合物表达式,则聚合物 Dart 核心输入验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26658047/