zoukankan      html  css  js  c++  java
  • KendoUI>Framework>MVVM>ObservableObject

    var viewModel1 = new kendo.data.ObservableObject( {
          field1: "value1",
          field2: "value2"
    });

    var viewModel2 = kendo.observable( {
          field1: "value1",
          field2: "value2"
    });
          

    这两段代码效果一致,kendo.data.ObservableObject和View-Model可以互换使用。因为所有View-Model继承于kendo.data.Observable对象。Objectkendo.data.ObservableObject对象支持更改追踪,以及更改通知。

    kendo.bind方法来转换View-Model对象到ObservableObject

    注意点: 用kendo.observale初始化View-Model后,你就可以用Kendo.data.ObservableObject的相关方法,因为这些方法能自动把View-Model对象转换为Kendo.data.ObservableObject

    var viewModel = kendo.observable({
        name: "John Doe"
    });

    viewModel.set("name", "Jane Doe"); // use the View-Model object after initialization

    如果,不是View-Model对象,自然不能:

    var viewModel = {
       name: "John Doe"
    };

    kendo.bind(document.body, viewModel);

    /* 
        The following statement  will fail because the View-Model
        is not an instance of kendo.data.ObservableObject.
    */
    viewModel.set("name", "Jane Doe");

    获取ObservableObject对象的值

    var viewModel = kendo.observable({
         name: "John Doe"
    });

    var name = viewModel.get("name");
    alert(name); // shows "John Doe"

    var viewModel = kendo.observable({
         person: {
             name: "John Doe"
         }
    });
    var personName = viewModel.get("person.name");
    alert(personName); // shows "John Doe"

    设置ObservableObject对象的值

    var viewModel = kendo.observable({
         name: "John Doe"
    });

    viewModel.set("name", "Jane Doe"); //set the "name" field to "Jane Doe"

    var name = viewModel.get("name");
    alert(name); // shows "Jane Doe"


    var viewModel = kendo.observable({
         person: {
             name: "John Doe"
         }
    });

    viewModel.set("person.name", "Jane Doe");

    var personName = viewModel.get("person.name");
    alert(personName); // shows "Jane Doe"

    组合View-Model对象的各个值

    <span data-bind="text: fullName"></span>
    <script>
        
    var viewModel = kendo.observable({
            firstName: 
    "John",
            lastName: 
    "Doe",
            fullName: 
    function() {
                
    return this.get("firstName"+ " " + this.get("lastName");
            }
        });

        kendo.bind($(
    "span"), viewModel);
    </script>


    合乎自然而生生不息。。。
  • 相关阅读:
    爱情七十八课,闲了就“犯贱”
    阿里巴巴中文站的CSS设计规则(转)
    爱情八十一课,可预测的分手
    [性格][管理]《九型人格2》 唐·理查德·里索(美)、拉斯·赫德森(美)
    爱情八十二课,爱情三国杀
    爱情七十九课,不爱权力大
    [心理学]《爱情心灵安全岛》 四四
    一些你不知道的囧知识,保证让你崩溃
    爱情七十四课,我们的意义
    爱情七十六课,门当户对
  • 原文地址:https://www.cnblogs.com/samwu/p/2433103.html
Copyright © 2011-2022 走看看