json-表单
JSON结构的表视图.
该元素会从 JSON 对象中生成表格和/或列表视图 . 如果 JSON 是一个数组, 它会生成表格视图 。 对于对象,它会制作列表视图.
复杂对象作为列表或表格的嵌入视图在主对象内表示 代表权。 这可能造成非常复杂的结构,并导致计算时的性能问题 数据模型和构建DOM. 因此,元素将只构建第一层视图. 如果对象 / 阵列包含其他对象 / 阵列, 它只会显示一个显示嵌入的按钮 对象。 这应禁止在发表观点时冻结UI.
另一个优化是pagination(默认残疾). 设定后 paginate 属性
阵列表格将包含一个页码 itemsPerPage 一次提供的物品。 用户可以
随时更改项目数量.
<json-table json="[...]" paginate itemsPerPage="15"></json-table>
内容行动
该元素可以在表 / 列表视图上方显示一个动作框 。 动作窗格是 显示与显示的内容相关的内容动作 按钮下面 它应该是图标按钮列表或仅仅是添加到此视图中的按钮.
按钮一定有 slot="content-action" 属性设置将包含在此视图中.
<json-table json='{"json": "test"}'>
<paper-icon-button slot="content-action" title="Copy content to clipboard" icon="arc:content-copy"></paper-icon-button>
</json-table>
使用量
安装
npm install --save @advanced-rest-client/json-table
在 html 文件内
<html>
<head>
<script type="module">
import '@advanced-rest-client/json-table/json-table.js';
</script>
</head>
<body>
<json-table paginate json="..."></json-table>
</body>
</html>
在一个LitElement中
import { LitElement, html } from 'lit-element';
import '@advanced-rest-client/json-table/json-table.js';
class SampleElement extends PolymerElement {
render() {
return html`
<json-table .json="${this.json}" paginate></json-table>
`;
}
}
customElements.define('sample-element', SampleElement);
在多聚体3元素中
import {PolymerElement, html} from '@polymer/polymer/polymer-element.js';
import '@advanced-rest-client/json-table/json-table.js';
class SampleElement extends PolymerElement {
static get template() {
return html`
<json-table json="[[json]]"></json-table>
`;
}
}
customElements.define('sample-element', SampleElement);
发展
git clone https://github.com/advanced-rest-client/json-table
cd json-table
npm install
本地运行演示
npm start
运行测试
npm test