zoukankan      html  css  js  c++  java
  • Javascript MVVM模式前端框架—Knockout 2.1.0系列

    2012-06-06 10:44 by 刺客之家, 794 visits, 收藏编辑

    *本文已经同步至索引目录:http://www.cnblogs.com/wbpmrck/archive/2012/05/16/Knockout-introduction.html

    前言&基础

    大家好,通过前面的一系列介绍和demo,相信大家已经对knockout的绑定有了感性的认识,通过内置的绑定,我们已经可以在页面上展示文本、html,并且与我们的viewModel对象实现双向更新了。

    今天我们继续介绍其他的几个重要的文本和样式相关的内置绑定,他们分别是:

    • css绑定
    • style绑定
    • attr绑定

    CSS Binding(CSS类名绑定)

    • ko内置的基础绑定之一 。
    • 用于控制DOM元素的class属性(因此个人认为叫做class binding更直接一些)。
    • 会根据所绑定的bool值(或者可以返回bool值的js表达式),给元素 移除/添加 对应的class名称
    • 如果与observable或者computed属性绑定,则会产生双向绑定效果。

    Style Binding(Style属性绑定)

    同样是用于控制样式,不过该绑定用于控制样式的细节:

    • 控制DOM元素的Style属性,比如color,width等
    • 会根据所绑定的bool值(或者可以返回bool值的js表达式),给元素 移除/添加 对应的Style属性
    • 如果与observable或者computed属性绑定,则会产生双向绑定效果。

    Attr Binding(attr属性绑定)

    这个绑定可以用于给DOM元素添加自定义属性,或绑定到已有的属性:

    • 控制DOM元素的任意属性,比如href等
    • 会根据所绑定的bool值(或者可以返回bool值的js表达式),给元素 移除/添加 对应的属性
    • 如果与observable或者computed属性绑定,则会产生双向绑定效果。

    实例讲解:CSS Binding

    基本语法

    Html代码

    <div data-bind="css: { myClass: enableMyClass }">
      some text
    </div>

    Js代码

    var viewModel = {
            enableMyClass: ko.observable(false) //默认为false
        };
        viewModel.enableMyClass(true);//设为true,则div的class有效

    Demo:演示CSS Binding基本用法

    看不到内嵌Demo的点这里查看在线Demo

    实例讲解:Style Binding

    基本语法

    Html代码

    <div data-bind="style: { color: currentProfit() < 0 ? 'red' : 'black' }">
       Profit Information
    </div>

    Js代码

    var viewModel = {
            currentProfit: ko.observable(150000) // 初始化,内容黑色
        };
        viewModel.currentProfit(-50); //div内容变为红色

    Demo:演示Style Binding基本用法

    看不到内嵌Demo的点这里查看在线Demo

    实例讲解:Attr Binding

    基本语法

    Html代码

    <a data-bind="attr: { href: url, title: details }">
        Report
    </a>

    Js代码

     var viewModel = {
            url: ko.observable("year-end.html"),
            details: ko.observable("这段文本将会作为a标签的title")
        };

    Demo:演示Attr Binding基本用法

    看不到内嵌Demo的点这里查看在线Demo

    总结

    今天主要介绍了ko中的CSS Binding、Style Binding和Attr Binding用法,至此,和文本与样式有关的内置绑定就介绍完了。这些绑定都是非常基础的功能,在日常开发过程中也是经常使用的,结合ko.observable和computed来使用,可以大大简化我们的代码结构,提高工作效率。

    感谢支持

    如果本文对您有帮助的话,请别吝啬手中的推荐票哦~


    本博客文章若非标记转载,均为原创,转载请注明出处~


    标签: knockout.jsMVVM
  • 相关阅读:
    非系统表空间损坏,rman备份恢复
    非系统数据文件损坏,rman备份恢复
    开启 控制文件自动备份下,参数文件、控制文件全部丢失恢复
    rman命令详解(三)
    Block Change Tracking (块改变跟踪)
    如何加快建 index 索引 的时间
    RMAN兼容性、控制文件自动备份、保存时间、备份策略、备份脚本(二)
    rman理论(一)
    动态参数与静态参数的判断、修改
    闪回之 Flashback Data Archive
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2538787.html
Copyright © 2011-2022 走看看