zoukankan      html  css  js  c++  java
  • knockoutjs(03) ko + jquery ui

    <h1 class="header" data-bind="text: label"></h1>
    
    <div id="dialog" data-bind="dialog: {autoOpen: false, title: 'Dialog test' }, dialogVisible: isOpen">foo dialog</div>
    
    <div>
        <button data-bind="click: open">Open</button>
        <button data-bind="click: close" >Close</button>
    </div>
    
    <hr/>
    
    <div data-bind="text: ko.toJSON($root)"></div>
    ko.bindingHandlers.dialog = {
            init: function(element, valueAccessor, allBindingsAccessor) {
                var options = ko.utils.unwrapObservable(valueAccessor()) || {};
                //do in a setTimeout, so the applyBindings doesn't bind twice from element being copied and moved to bottom
                setTimeout(function() { 
                    options.close = function() {
                        allBindingsAccessor().dialogVisible(false);                        
                    };
                    
                    $(element).dialog(options);          
                }, 0);
                
                //handle disposal (not strictly necessary in this scenario)
                 ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
                     $(element).dialog("destroy");
                 });   
            },
            update: function(element, valueAccessor, allBindingsAccessor) {
                 var shouldBeOpen = ko.utils.unwrapObservable(allBindingsAccessor().dialogVisible);
                 $(element).dialog(shouldBeOpen ? "open" : "close");
                 
            }
    };
        
    
    var viewModel = {
        label: ko.observable('dialog test'),
        isOpen: ko.observable(false),
        open: function() {
           this.isOpen(true);   
        },
        close: function() {
           this.isOpen(false);   
        }
    };
    
    ko.applyBindings(viewModel);
            
    .header {
        font-size: 16px;
        font-family: sans-serif;
        font-weight: bold;
        margin-bottom: 20px;
    }

    http://jsfiddle.net/rniemeyer/SnPdE/

    ----------------------------------- http://www.cnblogs.com/rock_chen/
  • 相关阅读:
    递推 hdu 1396
    递推 hdu 3411
    Eclipse中git上如何把自己的分支保存到远端
    api-gateway-engine知识点(1)
    Java知识点ArrayList
    如何利用VMware安装XP系统
    IOP知识点(1)
    Eclipse如何导入DemoWeb.rar
    mysql忘记root密码
    实习培训——Java多线程(9)
  • 原文地址:https://www.cnblogs.com/rock_chen/p/2732760.html
Copyright © 2011-2022 走看看