javascript - 模板内的 polymer 建模模板

标签 javascript polymer web-component

我正在尝试在 Polymer 中创建下拉选择(如果选择单选按钮则出现),这会触发另一个下拉选择 on-iron-select。

所有这些都位于父模板中:

<dom-module id="likes-cars">
  <template id="maintemplate">

    <paper-radio-button checked="{{likesCars}}" id="thebutton">I like cars.</paper-radio-button>



    <template is="dom-if" if="{{likesCars}}">
      <paper-dropdown-menu label="Your favourite car make">
        <paper-menu class="dropdown-content" on-iron-select="modelfunc">
          <paper-item>Make 1</paper-item>
          <paper-item>Make 2</paper-item>

        </paper-menu>
      </paper-dropdown-menu>
    </template>



    <template id="menutemp">
    <paper-dropdown-menu label="Your favourite car model">
      <paper-menu class="dropdown-content" >

        <template is="dom-repeat" items="{{models}}"id="modelstemplate" >
          <paper-item>{{item}}</paper-item>
        </template>

      </paper-menu>
    </paper-dropdown-menu>
  </template>
  </template>

一旦铁选择发生,我的 polymer 脚本是:

    <script>

      Polymer({
        is:"likes-cars",

        modelfunc: function() {
          this.$.menutemp.model={}
          this.$.modelstemplate.model={models:["Model 1","Model 2"]}

        }
      });

    </script>

这会导致错误:

Uncaught TypeError: Cannot set property 'model' of undefined

使用传入的数组选择和建模“modelstemplate”的最佳方法是什么?

我需要单独围绕它(“menutemp”)对模板进行建模吗?

最佳答案

我认为您有点误解了 Polymer 数据绑定(bind)的工作原理。

当您在自定义元素中使用 [[property]]{{property}} 表示法绑定(bind)到某些内容时,您将绑定(bind)到自定义元素的属性,无论您在调用 Polymer() 函数时是否实际定义了属性。

因此,当您说您的 dom-ifpaper-radio-button 绑定(bind)到 likesCars 并且 dom -repeat 绑定(bind)到 models,它们绑定(bind)到 this.likesCarsthis.models

因此,您在 modelfunc 函数中所需要做的就是将 this.models 设置为要显示为第二个菜单项的字符串数组。考虑到这一点,包围第二个菜单的模板实际上是不必要的。

这是一个jsbin通过基于您的代码的工作示例,我还添加了一个 selectedMake 属性,以便您实际上可以根据第一个菜单上选择的内容为第二个菜单设置不同的数组。

我希望这有帮助

关于javascript - 模板内的 polymer 建模模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33060761/

相关文章:

vue.js - 如何在 Vue Web 组件中使用 vue-i18n?

javascript - Wordpress - 单击时自动关闭移动菜单

javascript - 为基本的 CSS Canvas 游戏实现游戏开始/游戏结束/重启步骤

css - 未应用 iron-overlay-backdrop 样式

javascript - Web组件中嵌套槽的内容不可见

javascript - Webcomponents Polyfill 不工作

javascript - 格式化 Highcharts 的 JSON 响应

javascript - 如何阻止网站在 iframe 中加载?

javascript - 工作文件的 polymer 问题

java - 如何解决 Web 组件测试错误?