javascript - Kendo MVVM 中的多个 ViewModel

标签 javascript css html mvvm kendo-ui

我有这段有效的代码,但我不确定它是否是完成我想做的事情的正确方法。

假设我有一个类别 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/

相关文章:

javascript - Bootstrap 导航移动下拉自动展开

c# - 从 javascript 调用 ASP 生成的按钮单击

javascript - 来自 jQuery 类的多个 div 的鼠标悬停()事件

css - 使用 css 定位菜单标题(divi wordpress 主题)

html - 真气缺口: How do you get rid of a gap between IMG and surrounding content

javascript - 我无法访问我当前的元素

javascript - 优化 React 代码

html - 使 flex 元素在悬停时展开,缩小其 sibling

javascript - 为什么 Array.concat 在连接 jQuery 对象的二元素和三元素数组时会生成三元素数组?

javascript - 如何在一次 onclick 中运行确认()和提交()