![](/img/trans.png)
[英]sorting is not working for column which is having hyperlink on column data in ng2 smart table angular
[英]How to toggle column in ng2 data table/akveo in angular 4
我正在为项目集成akveo的ng2-data-table,在切换列可见性时遇到了麻烦。 我按照问题https://github.com/akveo/ng2-smart-table/issues/95设置了列的可见性标志,并在切换时更新了标志,但表中的数据未更新。 你能指出我所缺少的吗?
HTML
<div class="row table-control">
<div class="col-md-6">
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search
for names..">
</div>
<div class="col-md-3">
</div>
<div class="col-md-3">
<ss-multiselect-dropdown [options]="myOptions" [texts]="myTexts"
[settings]="mySettings" [(ngModel)]="optionsModel
(ngModelChange)="toggle($event)">
</ss-multiselect-dropdown>
</div>
</div>
<div class="row">
<ng2-smart-table [settings]="settings" [source]="rows"></ng2-smart-table>
</div>
TS
rows: any = [];
optionsModel: any[];
myOptions: IMultiSelectOption[];
settings = {
mode: 'external',
hideSubHeader: true,
actions: {
add: false, edit: false, delete: false, columnTitle: '', position: 'right'
},
columns: {
enquiry_no: { title: 'Enquiry No', filter: false, show: true },
name: { title: 'Name', filter: false, show: true },
};
constructor(private enquire: FetchenquirycampaignService) {
this.enquire.getAllEnquiry().subscribe(data => {
this.rows = data;
})
}
toggle() {
var item = this.optionsModel.pop();
console.log(item);
console.log(this.settings.columns[item].show);
this.settings.columns[item].show = !this.settings.columns[item].show;
console.log(this.settings.columns[item].show);
}
我已经使用angular-2-dropdown-multiselect来检索所选cols的id,而且已经使用LocalDataSource来刷新toggle()上的源,但是仍然没有运气。
实时示例: https : //ronit123321.github.io/procturV2/enquiry/manage
发现问题的实际根源是无法更新的设置对象。
因此创建了一个名为“ settingUpdater”的虚拟设置,并将所有属性添加到其中。 现在,在切换功能上更新此dummyObject并将值分配给实际设置。
toggle() {
var item = this.optionsModel.pop();
this.settingUpdater.columns[item].show = !this.settings.columns[item].show;
this.settings = Object.assign({}, this.settingUpdater);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.