聚合物纸张的数据绑定输入不起作用 [英] Databinding of polymer paper_input does not work
问题描述
我有以下代码,其中期望在first_name和属性val之间进行双向绑定。
<!DOCTYPE html>
< link rel =importhref =packages / polymer / polymer.html>
< link rel =importhref =packages / paper_elements / paper_input.html>
< polymer-element name ='paper-input-snippet'>
< template>
< div on-mouseout ={{zoom}}>
< paper-input
label =Firstfloatlabel
error =无效输入
id =first_name
value ='{ {val}}'>
< / paper-input>
< paper-input
label =middlefloatinglabel
error =无效输入
id =middle_name>
< / paper-input>
< paper-input
label =Lastfloatinglabel
error =无效输入
id =last_name>
< / paper-input>
< / div>
< / template>
< script type =application / dart>
import'package:polymer / polymer.dart';
import'dart:html';
import'package:paper_elements / paper_input.dart';
@CustomTag('paper-input-snippet')
类PaperInputSnippet扩展PolymerElement
{
@observable String val ='Tommy';
String receiver ='';
PaperInputSnippet.created():super.created();
void zoom(Event e,var detail)
{
print(e.target);
print(val);
}
@override
void attached()
{
super.attached();
receiver = this.dataset ['receiver'];
}
}
< / script>
< / polymer-element>但是,更改paper-element的值不会打印新的值,只打印初始化的值。
< 。
这是一个错误或者我做错了事情
EDIT
更新的Polymer包刚刚发布,应该修复此问题
请参阅 https://groups.google.com/a/dartlang.org/
您需要调整依赖关系约束才能获得此更新。更多详细信息,请参阅论坛/#!topic / bugs / -2f-TeaOoac
。因为它的开发版本
polymer:> = 0.11.1-dev< 0.12.0
编辑结束
对于此code.google.com/p/dart/issues/detail?id=19794
是一个未解决的问题。在解决此问题之前,您可以通过添加
on-change
事件处理程序:< paper-input
label =Firstfloatinglabel
error =无效输入
id =first_name
value ='{{val}}'
on-change ='{{firstNameChangeHandler}}'
>
< / paper-input>
void firstNameChangeHandler(){
val =($ ['first_name'] as PaperInput).value;
}
I have the following code where a 2-way binding is expected between first_name and the property val.
<!DOCTYPE html> <link rel="import" href="packages/polymer/polymer.html"> <link rel="import" href="packages/paper_elements/paper_input.html" > <polymer-element name='paper-input-snippet'> <template> <div on-mouseout="{{zoom}}"> <paper-input label="First" floatinglabel error="Invalid input" id="first_name" value='{{val}}'> </paper-input> <paper-input label="Middle" floatinglabel error="Invalid input" id="middle_name"> </paper-input> <paper-input label="Last" floatinglabel error="Invalid input" id="last_name"> </paper-input> </div> </template> <script type="application/dart"> import 'package:polymer/polymer.dart'; import 'dart:html'; import 'package:paper_elements/paper_input.dart'; @CustomTag( 'paper-input-snippet' ) class PaperInputSnippet extends PolymerElement { @observable String val = 'Tommy'; String receiver = ''; PaperInputSnippet.created() : super.created(); void zoom( Event e, var detail ) { print ( e.target ); print ( val); } @override void attached() { super.attached(); receiver = this.dataset['receiver']; } } </script> </polymer-element>
However, changing the value of the paper-element does not print the new value, only the intialized value is printed.
Is this a bug or am I doing something wrong>
解决方案EDIT
An updated Polymer packages was just published that should fix this issue see https://groups.google.com/a/dartlang.org/forum/#!topic/bugs/-2f-TeaOoac for more details.
You need to adjust your dependency constraint to get this update because its a development release
polymer: ">= 0.11.1-dev < 0.12.0"
EDIT END
There is an open issue for this code.google.com/p/dart/issues/detail?id=19794
Until it is fixed, you can work around it by adding an
on-change
event handler:<paper-input label="First" floatinglabel error="Invalid input" id="first_name" value='{{val}}' on-change='{{firstNameChangeHandler}}' > </paper-input>
void firstNameChangeHandler() { val = ($['first_name'] as PaperInput).value; }
这篇关于聚合物纸张的数据绑定输入不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!