美文网首页
Kendo UI MVVM 不允许模型混合和嵌套

Kendo UI MVVM 不允许模型混合和嵌套

作者: 寻找无名的特质 | 来源:发表于2021-08-24 06:07 被阅读0次

在使用Kendo UI MVVM封装组件时发现,布局类组件,比如tabstrip中如果嵌套了其它组件,会发生模型嵌套,比如:

    <div class="col-4">
        <div id="divtab2">
            <!--这里说明混合视图模型不可行,因为嵌套的视图模型可能由冲突-->
            <div data-role="tabstrip">
                <ul>
                    <li class="k-state-active">分页1</li>
                    <li>分页2</li>
                </ul>
                <div>
                    <div id="divInput2">
                        这里是输入部分
                        <span data-bind="text: firstName"></span> <span data-bind="text: lastName"></span>
                        <label>First Name: <input data-bind="value: firstName" /></label>
                        <label>Last Name: <input data-bind="value: lastName" /></label>
                    </div>
                    <script>
                        var vM12 = kendo.observable({
                            firstName: "三",
                            lastName: "张"
                        });
                        kendo.bind($("#divInput2"), vM12);
                    </script>
                </div>
                <div>
                    <div id="divGrid2">
                        <div id="recordgrid" class="grid"
                             data-role="grid"
                             data-sortable="true"
                             data-toolbar="['create']"
                             data-bind="source: recordSource"
                             data-editable='{"mode": "popup" }'
                             data-columns='[
                                  {"field":"Name","title":"名称", "width:": "200px"},
                                  {"field":"Description","title":"说明", "width:": "200px"},
                                     {"command": [ "edit", "destroy" ], "filterable": false, "sortable": false, "width:": "240px"}
                                     ]'
                             data-scrollable="false">
                        </div>
                    </div>
                    <script>
                        var vmgrid2;
                        $(document).ready(function () {
                            vmgrid2 = kendo.observable({
                                recordSource: new kendo.data.DataSource(
                                    {
                                        data: [
                                            { Name: "张三", Description: "测试" },
                                            { Name: "李四", Description: "开发" }
                                        ],
                                        schema: {
                                            model: {
                                                id: "Name",
                                                fields: {
                                                    Name: { validation: { required: true } },
                                                    Description: { validation: { required: true } }
                                                }
                                            }
                                        }
                                    }),

                            });

                            kendo.bind($("#divGrid2"), vmgrid2);
                        });


                    </script>
                </div>
            </div>
            <script>
                var vmtab2;
                $(document).ready(function () {
                    vmtab2 = kendo.observable({
                        firstName: "三1",
                        lastName: "张1"
                    });

                    kendo.bind($("#divtab2"), vmtab2);
                });
            </script>

        </div>

    </div>

上面的代码中VM12和vmtab2发生冲突,因为两个模型同时作用于相同的html元素,导致出现问题。在实践中,需要避免混合嵌套模型的使用。在上面的场景中,tabstrip可以使用jQuery的方式初始化:

               $(document).ready(function () {
                    $("#mytab1").kendoTabStrip();
                });

相关文章

  • Kendo UI MVVM 不允许模型混合和嵌套

    在使用Kendo UI MVVM封装组件时发现,布局类组件,比如tabstrip中如果嵌套了其它组件,会发生模型嵌...

  • Kendo UI MVVM 多模型

    如果我们将Kendo UI控件封装到Asp.Net的局部视图中,作为公用的组件,那么这个组件就应该不影响其它组件,...

  • Kendo UI DataSource的模型

    Kendo UI DataSource功能强大,Kendo UI的网格或者其它组件可以根据模型自动生成符合要求的编...

  • schedule

    Kendo UI 如何开始使用Kendo UI?准备文件css > bootstrap.min.css ke...

  • Kendo UI知识点学习和使用

    Kendo UI知识点学习和使用 作者:艾志谋时间:2017/10/29版本:1.0 1.Kendo UI实现Gr...

  • Kendo UI Chart MVVM 快速入门

    Kendo UI Chart 功能强大,支持各种图形类型, 通过使用series属性可以控制图形的类型和数据的关系...

  • Instant Kendo UI Grid.pdf 免费下载

    下载地址:Instant Kendo UI Grid[www.rejoiceblog.com].pdf

  • Android-ViewController——轻量级 Frag

    最近在做一些工作想统一 iOS 和 Android 下的开发模型和架构,界面部分打算通过 MVVM 模式和 UI ...

  • kendo UI Notification

    Kendo UI 提供了多种显示提示信息的控件,其中Notification最常用也最容易使用。首先在页面上放置一...

  • MVVM原理

    一.MVVM的构成 1.Model代表数据模型,数据和业务逻辑都在Model层中定义2.View代表UI视图,负责...

网友评论

      本文标题:Kendo UI MVVM 不允许模型混合和嵌套

      本文链接:https://www.haomeiwen.com/subject/znchiltx.html