• 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/
  • 相关阅读:
    elasticDump的安装使用
    centos7中给Elasticsearch5 安装bigdesk
    centos7下Elasticsearch5.2.2和head 插件环境搭建
    渗透测试入门DVWA 环境搭建
    windows环境下运行Elasticsearch
    UltraISO刻录CentOS 7安装指南
    TCP 协议中的 Window Size与吞吐量
    php 抛出异常
    php获取字符串长度
    php批量转换时间戳
  • 原文地址:https://www.cnblogs.com/rock_chen/p/2732760.html
Copyright © 2020-2023  润新知