Polymer 聚合物元素未注册

Polymer 聚合物元素未注册,polymer,Polymer,我已经创建了一个元素来显示API调用的结果,但它不是渲染。我使用了Polymer团队的“unregistered element”书签,它显示为未注册。我在聚合物起动器套件中使用这个 <dom-module id="driver-standing"> <template> <style> :host { display: block; } </style> <iron-aj

我已经创建了一个元素来显示API调用的结果,但它不是渲染。我使用了Polymer团队的“unregistered element”书签,它显示为未注册。我在聚合物起动器套件中使用这个

<dom-module id="driver-standing">
  <template>
    <style>
      :host {
        display: block;
      }
    </style>

    <iron-ajax
          auto
          url="http://ergast.com/api/f1/current/driverStandings.json"
          handle-as="json" 
          last-response="{{data}}"></iron-ajax>

    <template is="dom-repeat" items="{{driverList}}">
      <span>[[item.Driver.givenName]]</span> <span>[[item.Driver.familyName]]</span>
    <template>

  </template>

  <script>
  (function() {
    'use strict';

    Polymer({
      is: 'driver-standing',

      properties: {
        data: { 
        },
        driverList: {
          computed: 'processDrivers(data)'
        }
      },
      processDrivers: function (data){
        console.log("processDrivers")
        return data.MRData.StandingsTable.StandingsLists[0].DriverStandings;
      }
    });
  })();
  </script>

</dom-module>
我确信这只是我的疏忽,我只是没有看到

<dom-module id="driver-standing">
  <template>
    <style>
      :host {
        display: block;
      }
    </style>

    <iron-ajax
          auto
          url="http://ergast.com/api/f1/current/driverStandings.json"
          handle-as="json" 
          last-response="{{data}}"></iron-ajax>

    <template is="dom-repeat" items="{{driverList}}">
      <span>[[item.Driver.givenName]]</span> <span>[[item.Driver.familyName]]</span>
    <template>

  </template>

  <script>
  (function() {
    'use strict';

    Polymer({
      is: 'driver-standing',

      properties: {
        data: { 
        },
        driverList: {
          computed: 'processDrivers(data)'
        }
      },
      processDrivers: function (data){
        console.log("processDrivers")
        return data.MRData.StandingsTable.StandingsLists[0].DriverStandings;
      }
    });
  })();
  </script>

</dom-module>
元素列在
elements.html
文件中,并在主index.html文件中使用,如下所示

    <section data-route="driver-standings">
      <driver-standing></driver-standing>
    </section>
<dom-module id="driver-standing">
  <template>
    <style>
      :host {
        display: block;
      }
    </style>

    <iron-ajax
          auto
          url="http://ergast.com/api/f1/current/driverStandings.json"
          handle-as="json" 
          last-response="{{data}}"></iron-ajax>

    <template is="dom-repeat" items="{{driverList}}">
      <span>[[item.Driver.givenName]]</span> <span>[[item.Driver.familyName]]</span>
    <template>

  </template>

  <script>
  (function() {
    'use strict';

    Polymer({
      is: 'driver-standing',

      properties: {
        data: { 
        },
        driverList: {
          computed: 'processDrivers(data)'
        }
      },
      processDrivers: function (data){
        console.log("processDrivers")
        return data.MRData.StandingsTable.StandingsLists[0].DriverStandings;
      }
    });
  })();
  </script>

</dom-module>

元素

<dom-module id="driver-standing">
  <template>
    <style>
      :host {
        display: block;
      }
    </style>

    <iron-ajax
          auto
          url="http://ergast.com/api/f1/current/driverStandings.json"
          handle-as="json" 
          last-response="{{data}}"></iron-ajax>

    <template is="dom-repeat" items="{{driverList}}">
      <span>[[item.Driver.givenName]]</span> <span>[[item.Driver.familyName]]</span>
    <template>

  </template>

  <script>
  (function() {
    'use strict';

    Polymer({
      is: 'driver-standing',

      properties: {
        data: { 
        },
        driverList: {
          computed: 'processDrivers(data)'
        }
      },
      processDrivers: function (data){
        console.log("processDrivers")
        return data.MRData.StandingsTable.StandingsLists[0].DriverStandings;
      }
    });
  })();
  </script>

</dom-module>

<dom-module id="driver-standing">
  <template>
    <style>
      :host {
        display: block;
      }
    </style>

    <iron-ajax
          auto
          url="http://ergast.com/api/f1/current/driverStandings.json"
          handle-as="json" 
          last-response="{{data}}"></iron-ajax>

    <template is="dom-repeat" items="{{driverList}}">
      <span>[[item.Driver.givenName]]</span> <span>[[item.Driver.familyName]]</span>
    <template>

  </template>

  <script>
  (function() {
    'use strict';

    Polymer({
      is: 'driver-standing',

      properties: {
        data: { 
        },
        driverList: {
          computed: 'processDrivers(data)'
        }
      },
      processDrivers: function (data){
        console.log("processDrivers")
        return data.MRData.StandingsTable.StandingsLists[0].DriverStandings;
      }
    });
  })();
  </script>

</dom-module>

:主持人{
显示:块;
}
[[item.Driver.givenName][[item.Driver.familyName]]
(功能(){
"严格使用",;
聚合物({
是‘司机站着’,
特性:{
数据:{
},
驾驶员列表:{
计算:'processDrivers(数据)'
}
},
processDrivers:函数(数据){
console.log(“processDrivers”)
返回data.MRData.StandingsTable.standingslist[0]。驾驶员支架;
}
});
})();

您的
dom repeat
-模板中的任何帮助都应该是这样的:

<dom-module id="driver-standing">
  <template>
    <style>
      :host {
        display: block;
      }
    </style>

    <iron-ajax
          auto
          url="http://ergast.com/api/f1/current/driverStandings.json"
          handle-as="json" 
          last-response="{{data}}"></iron-ajax>

    <template is="dom-repeat" items="{{driverList}}">
      <span>[[item.Driver.givenName]]</span> <span>[[item.Driver.familyName]]</span>
    <template>

  </template>

  <script>
  (function() {
    'use strict';

    Polymer({
      is: 'driver-standing',

      properties: {
        data: { 
        },
        driverList: {
          computed: 'processDrivers(data)'
        }
      },
      processDrivers: function (data){
        console.log("processDrivers")
        return data.MRData.StandingsTable.StandingsLists[0].DriverStandings;
      }
    });
  })();
  </script>

</dom-module>
您应该在item标记中显示您想要显示的项目,并且随着数组的运行,它会以
as
-tag下定义的名称保护每个对象,这样您就可以访问模板绑定中的对象,并使用花括号中的名称,如
{driver}

<dom-module id="driver-standing">
  <template>
    <style>
      :host {
        display: block;
      }
    </style>

    <iron-ajax
          auto
          url="http://ergast.com/api/f1/current/driverStandings.json"
          handle-as="json" 
          last-response="{{data}}"></iron-ajax>

    <template is="dom-repeat" items="{{driverList}}">
      <span>[[item.Driver.givenName]]</span> <span>[[item.Driver.familyName]]</span>
    <template>

  </template>

  <script>
  (function() {
    'use strict';

    Polymer({
      is: 'driver-standing',

      properties: {
        data: { 
        },
        driverList: {
          computed: 'processDrivers(data)'
        }
      },
      processDrivers: function (data){
        console.log("processDrivers")
        return data.MRData.StandingsTable.StandingsLists[0].DriverStandings;
      }
    });
  })();
  </script>

</dom-module>
<template is="dom-repeat" 
          items="{{driverList}}"
          as="driver">
  <p>{{driver}}</p>
</template>

{{driver}}

<dom-module id="driver-standing">
  <template>
    <style>
      :host {
        display: block;
      }
    </style>

    <iron-ajax
          auto
          url="http://ergast.com/api/f1/current/driverStandings.json"
          handle-as="json" 
          last-response="{{data}}"></iron-ajax>

    <template is="dom-repeat" items="{{driverList}}">
      <span>[[item.Driver.givenName]]</span> <span>[[item.Driver.familyName]]</span>
    <template>

  </template>

  <script>
  (function() {
    'use strict';

    Polymer({
      is: 'driver-standing',

      properties: {
        data: { 
        },
        driverList: {
          computed: 'processDrivers(data)'
        }
      },
      processDrivers: function (data){
        console.log("processDrivers")
        return data.MRData.StandingsTable.StandingsLists[0].DriverStandings;
      }
    });
  })();
  </script>

</dom-module>

我错过了模板标签上的结束语

<dom-module id="driver-standing">
  <template>
    <style>
      :host {
        display: block;
      }
    </style>

    <iron-ajax
          auto
          url="http://ergast.com/api/f1/current/driverStandings.json"
          handle-as="json" 
          last-response="{{data}}"></iron-ajax>

    <template is="dom-repeat" items="{{driverList}}">
      <span>[[item.Driver.givenName]]</span> <span>[[item.Driver.familyName]]</span>
    <template>

  </template>

  <script>
  (function() {
    'use strict';

    Polymer({
      is: 'driver-standing',

      properties: {
        data: { 
        },
        driverList: {
          computed: 'processDrivers(data)'
        }
      },
      processDrivers: function (data){
        console.log("processDrivers")
        return data.MRData.StandingsTable.StandingsLists[0].DriverStandings;
      }
    });
  })();
  </script>

</dom-module>
<template is="dom-repeat" items="{{driverList}}">
  <span>[[item.Driver.givenName]]</span> <span>[[item.Driver.familyName]]</span>
<template>

[[item.Driver.givenName][[item.Driver.familyName]]
变成

<dom-module id="driver-standing">
  <template>
    <style>
      :host {
        display: block;
      }
    </style>

    <iron-ajax
          auto
          url="http://ergast.com/api/f1/current/driverStandings.json"
          handle-as="json" 
          last-response="{{data}}"></iron-ajax>

    <template is="dom-repeat" items="{{driverList}}">
      <span>[[item.Driver.givenName]]</span> <span>[[item.Driver.familyName]]</span>
    <template>

  </template>

  <script>
  (function() {
    'use strict';

    Polymer({
      is: 'driver-standing',

      properties: {
        data: { 
        },
        driverList: {
          computed: 'processDrivers(data)'
        }
      },
      processDrivers: function (data){
        console.log("processDrivers")
        return data.MRData.StandingsTable.StandingsLists[0].DriverStandings;
      }
    });
  })();
  </script>

</dom-module>
<template is="dom-repeat" items="{{driverList}}">
  <span>[[item.Driver.givenName]]</span> <span>[[item.Driver.familyName]]</span>
</template>

[[item.Driver.givenName][[item.Driver.familyName]]

很容易错过:)

我的理解(和经验)是,“循环”中的每个项目在默认情况下都可以在“项目”的名称下使用。我已经更新了代码片段,以便更好地显示每个对象的输出。添加
as=“item”
没有任何区别。是的,您有权这样做,但有时您必须添加as-tag!例如,当您有嵌套循环时,项将无法工作,因为两个模板要写入项属性!很高兴知道。我相信在不久的将来,这会让我不再头疼:)
<dom-module id="driver-standing">
  <template>
    <style>
      :host {
        display: block;
      }
    </style>

    <iron-ajax
          auto
          url="http://ergast.com/api/f1/current/driverStandings.json"
          handle-as="json" 
          last-response="{{data}}"></iron-ajax>

    <template is="dom-repeat" items="{{driverList}}">
      <span>[[item.Driver.givenName]]</span> <span>[[item.Driver.familyName]]</span>
    <template>

  </template>

  <script>
  (function() {
    'use strict';

    Polymer({
      is: 'driver-standing',

      properties: {
        data: { 
        },
        driverList: {
          computed: 'processDrivers(data)'
        }
      },
      processDrivers: function (data){
        console.log("processDrivers")
        return data.MRData.StandingsTable.StandingsLists[0].DriverStandings;
      }
    });
  })();
  </script>

</dom-module>