是否有一种直接的方法可以在 kendo 自动完成字段的 mvvm html 属性中定义“选择”事件处理函数?
例如,这是使用 jquery 设置的自动完成字段的工作版本:
$("#fieldProjectName").kendoAutoComplete({
minLength: 4,
filter: "contains",
dataTextField: "ProjectName",
placeholder: "Begin typing the Project Name",
select: function (e) { selectAutoComplete(this.dataItem(e.item.index()), "ProjectItemKey", "ProjectName") },
dataSource: dataProjectList,
});
到目前为止,这是使用 mvvm html 属性“data-???”在模板中定义类似字段的等效版本
<input name="ProjectItemKey"
data-bind="value:ProjectName"
data-value-primitive="true"
data-value-field="ProjectItemKey"
data-text-field="ProjectName"
data-source="dataProjectList"
data-role="autocomplete"
data-min-length="4"
data-filter="contains"
data-placeholder="Begin typing the Project Name"
/>
我们不知道如何在这个 mvvm html-attribute 结构中定义 select 事件的事件处理程序,这相当于第一个示例中的“select:”属性:
select: function (e) { selectAutoComplete(this.dataItem(e.item.index()), "ProjectItemKey", "ProjectName") },
例如,如果有类似的东西:
data-select: "onSelectProject"
然后我们可以在模板中包含这个函数来处理“选择”事件:
function onSelectProject(e) {
selectAutoComplete(this.dataItem(e.item.index()), "ProjectItemKey", "ProjectName");
}
不幸的是,我们不知道如何做到这一点。我们看到的唯一有点相关的文档涉及设置一个自定义 kendo.observable 模型,其中嵌入了一个自定义方法,然后在数据绑定事件中设置一些东西。然而,这似乎是一种非常复杂和间接的方法。此外,我们不知道如何操作模型,因为它来自 kendoGrid,然后使用包含此自动完成字段的自定义记录编辑模板。
我们已经花了很多时间试图追踪这个,所以任何帮助都将不胜感激。