我有这段有效的代码,但我不确定它是否是完成我想做的事情的正确方法。
假设我有一个类别 ID 的下拉列表,只要用户选择一个类别,网站就会为该类别拉出相应的产品。我面临的问题是,我觉得好像我不应该需要一个单独的结果 View 模型 (resultsViewModel)。有没有办法将 ajax 调用的结果包含到原始 View 模型 (viewModel) 中?
JS
var viewModel = kendo.observable({
title: "Products",
Categories: null,
GetProducts: function (e) {
var categoryID = $('#drpCategory').val();
var data = { CategoryID: categoryID };
$.ajax('/Product/GetProductByCategoryID', {
dataType: 'JSON',
type: 'POST',
data: data,
success: function (data) {
// Should this go to current ViewModel?
var resultsViewModel = kendo.observable({
Result: data
});
}
})
}
})
最佳答案
我只想在您的 viewModel 上为 Products 创建一个附加属性,然后调用 viewModel.set("Products", data);在您的成功功能中。
var viewModel = kendo.observable({
title: "Products",
Categories: null,
Products: [],
GetProducts: function (e) {
var categoryID = $('#drpCategory').val();
var data = { CategoryID: categoryID };
$.ajax('/Product/GetProductByCategoryID', {
dataType: 'JSON',
type: 'POST',
data: data,
success: function (data) {
viewModel.set("Products", data);
}
})
}
})
然后将您的产品绑定(bind)到该数组。或者您可以将其设为数据源并设置其数据属性。
关于javascript - Kendo MVVM 中的多个 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32189830/