Получение iron-data-table для рендеринга демо-данных
Когда я запускаю свой код в этом JSbin, я ожидаю iron-data-table
для рендеринга с заполненными данными, аналогично тому, как это делается на этой демонстрационной странице. Вместо этого отображаются только заголовки таблицы, но остальные ячейки не заполняются.
Какие изменения можно внести в JSbin для достижения желаемого поведения?
http://jsbin.com/hepebapori/1/edit?html,console,output<!DOCTYPE html>
<html>
<head>
<base href="https://polygit.org/polymer+:master/components/">
<link rel="import" href="polymer/polymer.html">
<script src="webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="iron-ajax/iron-ajax.html">
<link rel="import" href="paper-button/paper-button.html">
<link href="https://rawgit.com/saulis/iron-data-table/master/iron-data-table.html" rel="import">
</head>
<body>
<dom-module id="x-foo">
<template>
<style>
</style>
<paper-button on-tap="msg">Click Me</paper-button>
<iron-ajax auto
url="https://saulis.github.io/iron-data-table/demo/users.json"
last-response="{{users}}"
>
</iron-ajax>
<iron-data-table selection-enabled items="[[users.results]]">
<data-table-column name="Picture" width="50px" flex="0">
<template>
<img src="[[item.user.picture.thumbnail]]">
</template>
</data-table-column>
<data-table-column name="First Name">
<template>[[item.user.name.first]]</template>
</data-table-column>
<data-table-column name="Last Name">
<template>[[item.user.name.last]]</template>
</data-table-column>
<data-table-column name="Email">
<template>[[item.user.email]]</template>
</data-table-column>
</iron-data-table>
</template>
<script>
(function(){
'use strict';
Polymer({
is: 'x-foo',
msg: function() {
console.log('This proves Polymer is working!');
},
});
})();
</script>
</dom-module>
<x-foo></x-foo>
</body>
</html>
2 ответа
Ваша проблема заключается в импорте iron-data-table
, Простое использование rawgit не поможет, так как вам нужно использовать прокси-сервер, такой как polygit, чтобы веб-компоненты работали (вы уже загружаете Polymer, как этот, но не iron-data-table
).
Из-за посредственной документации мне потребовалось некоторое время, чтобы понять, как совместить импорт полимера с iron-data-table
,
Две необходимые конфигурации: polymer+:master
а также iron-data-table+Saulis+:master
,
В сочетании ваш base
тег выглядит так:
<base href="https://polygit.org/polymer+:master/iron-data-table+Saulis+:master/components/">
При этом вы можете импортировать элемент так же, как остальные:
<link rel="import" href="iron-data-table/iron-data-table.html">
Работает JSbin (протестировано в Google Chrome)
Чтобы начать использовать iron-data-table в вашем проекте, вам необходимо:
- скачать пакеты:
bower i iron-data-table -S bower install --save PolymerElements/iron-ajax
- создать HTML-файл, ссылающийся на эти пакеты:
<html> <head> <title></title> <meta charset="utf-8" /> <link rel="import" href="bower_components/polymer/polymer.html"> <link rel="import" href="bower_components/iron-ajax/iron-ajax.html" /> <link rel="import" href="bower_components/iron-data-table/iron-data-table.html"> </head> <body> <template is="dom-bind"> <iron-ajax url="data.json" last-response="{{data}}" auto></iron-ajax> <iron-data-table items="[[data]]"> <data-table-column name="First Name"> <template> [[item.name.first]] </template> </data-table-column> <data-table-column name="Last Name"> <template> [[item.name.last]] </template> </data-table-column> </iron-data-table> </template> </body> </html>
- создайте файл data.json в том же месте, где находится html-файл:
[ {"name": { "title": "miss", "first": "donna", "last": "davis" }}, { "name": { "title": "mr", "first": "samuel", "last": "kelley" } }, {"name": { "title": "ms", "first": "katie", "last": "butler" }} ]