我使用剑道多选:
<ak-multiselect k-data-text-field="name"
k-data-value-field="id"
id="selectCorporateGroup"
k-data-source.bind="corporateGroupDataSource"
k-on-change.delegate="SetGroupFilter(???)"
data-placeholder="Select corporate group...">
</ak-multiselect>
ts文件中的我对SetGroupFilter有以下描述:
SetGroupFilter(select)
{
var multiselect = select.data("kendoMultiSelect");
var selectedItems = multiselect.dataItems();
var filters = this.buildFilters(selectedItems , "GroupId");
this.merchantDataSource.filter(filters);
}
在我拥有以下SetGroupFilter函数之前:
export class TransactionComponent {
SetGroupFilter()
{
var multiselect = $("#selectCorporateGroup").data("kendoMultiSelect");
var dataItem = multiselect.dataItems();
var filters = this.buildFilters(dataItem, "GroupId");
this.merchantDataSource.filter(filters);
}
}
但是现在我有一个任务来划分模型&amp;视图模型。所以我不能在ts文件中使用id作为我的multiselect。
但是我如何向viewmodel发送必要的信息?我想把我的多选作为对象。
如果我使用 k-on-change.delegate =“SetGroupFilter($ this)”,我会得到select = TransactionComponent
如果我使用 k-on-change.delegate =“SetGroupFilter(this)”,我会得到select = undefined
我如何修理它?
答案 0 :(得分:0)
我已经找到了决定!
我使用了以下表达式:
k-on-change.delegate="SetGroupFilter($event)"
在viewmodel中:
var multiselect = select.detail.sender;
var dataItem = select.detail.sender.dataItems();
一切正常!