drop-down-menu - 动态生成的 paper 下拉菜单初始选择问题

标签 drop-down-menu polymer web-component paper-elements

所以我试图动态生成一个从 AJAX 数据源填充的纸质下拉菜单,使用下面的代码效果很好:

<polymer-element name="my-element" attributes="selected">
  <template>

    <core-ajax auto url="/api/items/" response="{{items}}" handleAs="json"></core-ajax>
    <paper-dropdown-menu selected="{{selected}}">
      <template repeat="{{items}}">
        <paper-item name="{{id}}" label="{{name}}"></paper-item>
      </template>
    </paper-dropdown-menu>

  </template>

但是,如果我将初始选定项设置为已发布属性的值,或者我在“就绪”回调中设置的值,则在加载项时不会选择下拉菜单项:
  <script>
  Polymer({
    publish: {
      selected: null
    }
  });
  </script>
</polymer-element>

我知道发生这种情况是因为在绑定(bind)下拉列表中的模板之前设置了“selected”属性,但我的问题是是否有办法 1)将“selected”属性更改推迟到模板绑定(bind)之后或 2) 以其他方式可靠地为下拉菜单设置初始选择的值?

最佳答案

一种选择是在数据可用之前不呈现下拉菜单。

例如:http://jsbin.com/piyogo/13/edit

<polymer-element name="foo-drop">
  <template>
    <core-ajax auto
               url="http://www.json-generator.com/api/json/get/bJMeMASvTm?indent=2"
               response="{{items}}"    
               handleas="json">
    </core-ajax>
    <template if="{{items}}">
      <paper-dropdown-menu selected="{{selected}}">
        <template repeat="{{item in items}}">
          <paper-item label="{{item.name}}"></paper-item>
        </template>
      </paper-dropdown-menu>  
    </template>
  </template>  
  <script>
    Polymer({
      publish: {
        selected: null
      }
    });
  </script>
</polymer-element>

<foo-drop selected="2"></foo-drop>

关于drop-down-menu - 动态生成的 paper 下拉菜单初始选择问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26635287/

相关文章:

HTML <template> 在 Firefox 中为空(devtools 和 document.importNode() 之后)

javascript - IE 和 Firefox 上的 Webcomponents.js 问题

asp.net-mvc - 如何在编辑页面 MVC 中设置下拉列表选定值

html - 与父导航宽度相同的下拉导航

css - 右对齐CSS下拉菜单的最后一个子菜单

javascript - polymer :定型纸输入

php - 来自 2 个 mysql 表的动态下拉列表

Firebase Auth - 渐进式网络应用( polymer )离线模式

javascript - POLYMER:在纸张项下嵌套纸张输入会禁用空格键

dart - 在自己的项目中使用自定义 polymer 元素-如何正确执行?