1. 程式人生 > >kendo ui 實現MVVM

kendo ui 實現MVVM

visible set pri operation option per param -m edi

MVVM model----view model----model 實現頁面和model之間的動態綁定

grid 支持 events source visible綁定

第一步建立一個observable對象 對象為參數

var viewModel = kendo.observable()

第二步實現視圖與 viewModel綁定

 kendo.bind($("#example"), viewModel);  //jQuery對象

註意對某一屬性設置值時使用

this.set("isDescriptionShown", true);
     showDescription: function(e) {
       e.stopPropagation(); 
    e.preventDefault();
        this.set("isDescriptionShown", true);  //給屬性賦值
}



<!DOCTYPE html>
<html>
<head>
    <title></title>
    <link rel="stylesheet" href="styles/kendo.common.min.css" />
    <link rel="stylesheet" href="styles/kendo.default.min.css" />
    <link rel="stylesheet" href="styles/kendo.default.mobile.min.css" />

    <script src="js/jquery.min.js"></script>
    <script src="js/kendo.all.min.js"></script>
    

</head>
<body>
<div id="example">
    <div class="demo-section k-content wide">
        <div>
            <h4>Add or update a record</h4>
            <div data-role="grid"
                 data
-editable="true" data-toolbar="[‘create‘, ‘save‘]" data-columns="[ { ‘field‘: ‘ProductName‘, ‘width‘: 270 }, { ‘field‘: ‘UnitPrice‘ }, ]" data-bind="source: products
, //綁定的屬性 visible: isVisible, //顯示隱藏 events: { save: onSave }
"
style="height: 200px"></div> </div> <div style="padding-top: 1em;"> <h4>Console</h4> <div class="console"></div> </div> </div> <div class="box wide"> <div class="box-col"> <h4>Configuration</h4> <div> <label><input type="checkbox" data-bind="checked: isVisible">Visible</label> //綁定的屬性 </div> </div> <div class="box-col"> <h4>Information</h4> Kendo UI Grid supports the <a href="http://docs.telerik.com/kendo-ui/getting-started/framework/mvvm/bindings/events">events</a>, <a href="http://docs.telerik.com/kendo-ui/getting-started/framework/mvvm/bindings/source">source</a> and <a href="http://docs.telerik.com/kendo-ui/getting-started/framework/mvvm/bindings/visible">visible</a> bindings. </div> </div> <script> var viewModel = kendo.observable({ //觀察者 檢測屬性的變化 isVisible: true, onSave: function(e) { kendoConsole.log("event :: save(" + kendo.stringify(e.values, null, 4) + ")"); }, products: new kendo.data.DataSource({ schema: { //圖表 model: { id: "ProductID", fields: { ProductName: { type: "string" }, UnitPrice: { type: "number" } } } }, batch: true, //批量的 transport: { read: { url: "https://demos.telerik.com/kendo-ui/service/products", dataType: "jsonp" }, update: { url: "https://demos.telerik.com/kendo-ui/service/products/update", dataType: "jsonp" }, create: { url: "https://demos.telerik.com/kendo-ui/service/products/create", dataType: "jsonp" }, parameterMap: function(options, operation) { if (operation !== "read" && options.models) { return {models: kendo.stringify(options.models)}; } } } }) }); kendo.bind($("#example"), viewModel); //實現 視圖和 viewModel的綁定 </script> </div> </body> </html>

kendo ui 實現MVVM