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/
  • 相关阅读:
    微服务定义及.Net Core中用的技术
    IPad分屏,当电脑第二显示屏
    .net Core1.0 邮件发送
    AutoMapper总结
    02-C#(基础)基本的定义和说明
    01-.Net编程机制
    C#基础篇--静态成员、抽象成员、接口
    C#基础篇--面向对象(类与对象)
    期末总结
    改动后的封装
  • 原文地址:https://www.cnblogs.com/rock_chen/p/2732760.html
Copyright © 2011-2022 走看看