聚合物纸张的数据绑定输入不起作用 [英] Databinding of polymer paper_input does not work

查看:140
本文介绍了聚合物纸张的数据绑定输入不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码,其中期望在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆