0
我使用Telerik的Kendo UI
及其autocomplete
小部件和它們的MVVM
框架,並且在獲取一個框以將檢索(和選定)對象設置爲綁定對象查看模型。例如...沒有設置綁定的對象
var viewModel = kendo.observable({
Context: {}
});
$("#context").kendoAutoComplete({
dataTextField: "Name",
dataValueField: "Id",
delay: 800,
dataSource: {
dataType: "json",
serverFiltering: true,
transport: {
read: {
url: "/search/data",
data: function (data) {
return {
term: data.filter.filters[0].value
}
}
}
}
}
}).data("kendoAutoComplete");
然後我使用下面的HTML;
<input data-val="true"
id="context"
name="context"
placeholder="Context"
type="text"
data-bind="value: Context" />
這命中一個控制器操作,返回以下內容;
[
{
Id: "items/1",
Name: "Item 1",
Label: "Item 1 Label"
},
{
Id: "items/2",
Name: "Item 2",
Label: "Item 2 Label"
},
{
Id: "items/3",
Name: "Item 3",
Label: "Item 3 Label"
}
]
然而,當我使用自動完成搜索之後選擇對象時,Context
財產在我的視圖模型仍然null
。
我可以通過添加一個特定的select
函數來規避這個問題。
select: function(e) {
var dataItem = e.sender.dataItem(e.item.index()).toJSON();
// update the model
viewModel.set('Context', dataItem);
}
但我真的寧願只是它的工作就像它應該;有什麼建議麼?
是的,我有一個代碼;對不起,我只是假定它被理解爲行爲的一部分。頁面中還有其他綁定,並且它們都可以正確綁定。 – Ciel
但是我隱藏在答案中的JSFiddle是否適合你? – OnaBai
這仍然不會將屬性設置爲實際選定的項目;您的示例僅獲取文本的實際標籤。 – Ciel