【问题标题】:How to bind object's subproperties with paper-input in Polymer如何将对象的子属性与 Polymer 中的纸张输入绑定
【发布时间】:2017-06-28 13:19:18
【问题描述】:

我的一个 Polymer 组件中有一个对象属性 (newcontact) 和函数 (saveContact):

properties: {
  newcontact: {
    type: Object
  }
},
saveContact: function() {
  console.log(this.newcontact); // Getting undefined
},

我想通过<paper-input> 数据绑定向newcontact 添加子属性,如以下代码所示:

<label class="form-control-label">Name</label>
<paper-input type="text" name="name" is="iron-input" value="{{newcontact.name}}"></paper-input>

<label>Email</label>
<paper-input type="text" name="email" is="iron-input" value="{{newcontact.email}}"></paper-input>          

<label>Phone</label>
<paper-input type="text" name="phone" is="iron-input" value="{{newcontact.phone}}"></paper-input>           
<paper-input hidden is="iron-input" value="{{newcontact.id}}"></paper-input>
<input type="button" value="Save" on-click="saveContact" class="btn btn-primary">

但是saveContact() 总是为this.newcontact 记录undefined。这是为什么呢?

【问题讨论】:

    标签: javascript data-binding polymer polymer-1.0


    【解决方案1】:

    您正在使用输入字段设置newcontact 对象的属性。但是,该对象从未被初始化。您可以在 properties 定义中通过给它一个值来做到这一点。

    properties:{
        newcontact:{
            type: Object,
            value: function() {
                return {};
            }
        }
    },
    

    【讨论】:

    • 谢谢,是初始化造成的!!
    猜你喜欢
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    相关资源
    最近更新 更多