【发布时间】:2018-10-02 09:09:58
【问题描述】:
我是 Angular 新手,一直在研究 Clarity 作为 UI 组件。我玩的第一件事是 Clarity 'Datagrid'。
在这里,我想制作一个通用组件,可以配置类似“columnModel”和“data”之类的东西,这两者都来自后端。 它将在角度组件结构指令(*ngFor 等)中用于显示数据网格。这是我想出的...
app.component.ts 中的定义
columnModel = [
{header:'Id',dataIndex:'id','width':50},
{header:'Name',dataIndex:'name','width':100},
]
data : [
{id: 1, name: 'Name1', age: 1, rem: 'aaassssssssssssss'} ,
{ id: 2, name: 'Name2', age: 1, rem: 'aaassssssssssssss'},
{ id: 3, name: 'Name3', age: 1, rem: 'aaassssssssssssss'},
]
这就是我所做的。(可能是因为对 Clarity n Angular 缺乏更好的理解)..我使用了 jQuery....
在主机组件的'ngOnInit'上,我使用jquery在每个结果行中设置'data-columns'和'data-cells'的'width'..基于上面的'colModel'..它似乎工作! !!!
jQuery 代码:
ngOnInit() {
const jqModel = this.colModel;
$(document).ready(function() {
$(".datagrid-column").each(function(indx) {
$(this).attr("style",function(i,v){return "max-width:" +
jqcolModel[indx].width +"px;width:" +
jqcolModel[indx].width+"px;"});
});
$(".datagrid-row-master").each(function(indx) {
$(this).children().each(function(indx) {
$(this).attr("style",function(i,v){return "max-width:" +
jqcolModel[indx].width +"px;width:" +
jqcolModel[indx].width+"px"});
});
});
}
我向各位专家提出的问题是“这是最佳做法吗?” 或者 有没有更好的方法来实现这一点..
提前感谢您指导我。
【问题讨论】:
标签: vmware-clarity