2017-08-18 5 views
0

私のプロジェクトにはng2-data-tableをakveoで統合しており、列の可視性を切り替えるときにヒップアップが発生しました。 私は列の可視性フラグを設定するためにhttps://github.com/akveo/ng2-smart-table/issues/95の問題を追跡し、フラグを更新するにはフラグを更新するが、データはテーブルで更新されません。 私は何が足りないのか教えてください。角度4のng2データテーブル/ akveoの列をトグルする方法

Iが選択さCOLSのIDを取得する角度-2-ドロップダウン・複数選択を使用している

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); 
    } 

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、またトグル上のソースを更新するLocalDataSource使用している()はまだ運がない。

ライブ例:問題の実際のソースを更新することができない設定オブジェクトであることがわかったhttps://ronit123321.github.io/procturV2/enquiry/manage

答えて

0

"settingUpdater"という名前のダミー設定が作成され、すべての属性が追加されました。今度は、このdummyObjectを更新し、実際の設定に値を割り当てます。

toggle() { 
var item = this.optionsModel.pop(); 
this.settingUpdater.columns[item].show = !this.settings.columns[item].show; 
this.settings = Object.assign({}, this.settingUpdater); 
} 
関連する問題