• Knockout.Js官网学习(visible绑定)


    前言

    让visible绑定到DOM元素上,使得该元素的hidden或visible取决于绑定的值。

    简单的绑定

     首先还是先定义一个ViewModel 

        var AppViewModel = {
            shouldShowMessage: ko.observable(true)  ///初始化的时候div是visible的     
        };
        
        AppViewModel.shouldShowMessage = ko.observable(false);   ///现在hidden勒
        ko.applyBindings( AppViewModel);

    并且通过ko.applyBindins进行激活Knockout。

    然后定义一个UI界面元素

    <div data-bind="visible:shouldShowMessage">
        You will see this message only when "shouldShowMessage" holds a true value.
    </div>

    运行之后此div在初始化的时候还是显示的可以,之后就被重新赋值为false,导致此div被隐藏掉了。

    参数:

    当参数设置为一个假值时(例如:布尔值false, 数字值0, 或者null, 或者undefined) ,该绑定将设置该元素的style.display值为none,让元素隐藏。它的优先级高于你在CSS里定义的任何display样式。

    当参数设置为一个真值时(例如:布尔值true,或者非空non-null的对象或者数组) ,该绑定会删除该元素的style.display值,让元素可见。然后你在CSS里自定义的display样式将会自动生效。

    如果参数是监控属性observable的,那元素的visible状态将根据参数值的变化而变化,如果不是,那元素的visible状态将只设置一次并且以后不在更新。

    使用函数或者表达式来控制元素的可见性

    你也可以使用JavaScript函数或者表达式作为参数。这样的话,函数或者表达式的结果将决定是否显示/隐藏这个元素。例如:

    复制代码
    <script type="text/javascript">
        var AppViewModel = {
            shouldShowMessage: ko.observable(true),   ///初始化的时候div是visible的
            myValues: ko.observableArray([])         
        };
        
        AppViewModel.shouldShowMessage = ko.observable(false);   ///现在hidden勒
        AppViewModel.myValues.push("some value");                   ///向myValues数组中 添加一个项
        ko.applyBindings( AppViewModel);
    </script>
    复制代码

    在ViewModel中添加了一个myValues的属性值

    同时给myValues的数组添加了一个项

    并且在页面UI中绑定了一个元素

    <div data-bind="visible: myValues().length > 0">    
      You will see this message only when 'myValues' has at least one member.
    </div>

    就这样当添加完"some value"元素之后,myValues().length>0 则结果为true 

    那么此div就会显示出来。

  • 相关阅读:
    Jvm性能监控和常用工具
    JVM内存分配和回收策略
    从ExtensionLoader理解Dubbo扩展机制
    类的加载和双亲委派模型
    截器和过滤器的区别
    Struts2的工作原理
    Action
    StrutsPrepareAndExecuteFilter
    单例模式
    Web工作原理
  • 原文地址:https://www.cnblogs.com/zxbzl/p/6004080.html
Copyright © 2020-2023  润新知