Aurelia - 如何将对象或参数发送到视图模型?

Aurelia - how send object or parameter to viewmodel?

我用Kendo多select:

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

但是现在我有一个任务是划分模型和视图模型。所以我不能在 ts-file.

中为我的 multiselect 使用 id

但是我如何才能将必要的信息发送到 viewmodel?我想发送我的 multiselect 作为对象。

如果我使用 k-on-change.delegate="SetGroupFilter($this)",我会得到 select = TransactionComponent

如果我使用 k-on-change.delegate="SetGroupFilter(this)" 我得到 select = undefined

我该如何解决?

我找到了决定!

我使用了以下表达式:

k-on-change.delegate="SetGroupFilter($event)"

在视图模型中:

var multiselect = select.detail.sender;

var dataItem = select.detail.sender.dataItems(); 

工作正常!