2015-09-04 65 views
3

我有一个iron-form在我的项目中做CRUD。除了一个问题之外,这很有效。如何从模型数据中预先选择纸张下拉菜单中的纸张项目?

我怎样才能让paper-dropdown-menu显示模型数据的值? (即:预选paper-item对应于我的模型数据[o.id]值)

paper-menuselected属性没有帮助,因为它的指数为基础的,而不是根据paper-item的价值。

这里是形式的代码:

<form is="iron-form" id="itemForm" method="post" action="/api/item/edit"> 

    <input is="iron-input" name="id" type="hidden" value="{{item.id}}"> 

    <paper-dropdown-menu label="Title" selected-item="{{selectedTitle}}"> 
     <paper-menu class="dropdown-content"> 
      <template is="dom-repeat" items="{{titles}}" as="o"> 
       <paper-item value="[[o.id]]">[[o.name]]</paper-item> 
      </template> 
     </paper-menu> 
    </paper-dropdown-menu> 
    <input is="iron-input" name="title" type="hidden" value$="[[selectedTitle.value]]"> 

    <paper-input name="firstName" label="First name" value="{{item.firstName}}"></paper-input> 

    <paper-button raised onclick="document.getElementById('itemForm').submit()">Save</paper-button> 
</form> 

回答

6

首先,你不能为双向数据绑定使用selected-item“因为它是只读

相反,你应该在paper-menu这样使用selected -

<paper-menu id="menu" class="dropdown-content" selected="{{selectedValue}}" attr-for-selected="value"> 

请注意,您需要指定attr-for-selected告诉selected财产属性,用于进行选择。您还需要在元素中创建一个selectedValue属性,以通过绑定更新selected属性。

最初,我在Polymer的ready函数中指定了selectedValue属性,但它不起作用。我怀疑这可能是因为在渲染重复模板之前selected属性设置得太早。

attached: function() { 
    this.async(function() { 
    this.selectedValue = 1; 
    }); 
} 

而这个时候it作品 -

因此,而不是将它设置里面ready,我在attached设置。在paper-dropdown-menu

2

预先选择的项目可以在用作dropdown-content(例如paper-menupaper-listbox)添加元素的属性selectedattr-for-selected和。

<paper-dropdown-menu> 
    <paper-listbox attr-for-selected="data-order" selected="1" class="dropdown-content"> 
    <paper-item data-order="0">First</paper-item> 
    <paper-item data-order="1">Second</paper-item> 
    <paper-item data-order="2">Third</paper-item> 
    </paper-listbox> 
</paper-dropdown-menu> 
相关问题