zoukankan      html  css  js  c++  java
  • 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就会显示出来。

  • 相关阅读:
    eslint 的 env 配置是干嘛使的?
    cookie httpOnly 打勾
    如何定制 antd 的样式(theme)
    剑指 Offer 66. 构建乘积数组
    剑指 Offer 65. 不用加减乘除做加法
    剑指 Offer 62. 圆圈中最后剩下的数字
    剑指 Offer 61. 扑克牌中的顺子
    剑指 Offer 59
    剑指 Offer 58
    剑指 Offer 58
  • 原文地址:https://www.cnblogs.com/zxbzl/p/6004080.html
Copyright © 2011-2022 走看看