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();
工作正常!
我用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();
工作正常!