Kendo MVVM中的多个ViewModel

时间:2015-08-24 19:04:53

标签: javascript css html5 mvvm kendo-ui

我有这个代码可行,但我不确定它是否是完成我想做的正确方法。

我们说我有一个类别ID的下拉列表,每当用户选择一个类别时,该网站就会提取该类别的相应产品。我面临的问题是,我觉得我不应该为结果需要一个单独的视图模型(resultsViewModel)。有没有办法将ajax调用的结果包含到原始视图模型(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
                });

            }
        })
    }
})

1 个答案:

答案 0 :(得分:1)

我只是在viewModel for 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);
            }
        })
    }
})

然后将您的产品绑定到该阵列。或者你可以使它成为一个dataSource并设置它的数据属性。