`
desert3
  • 浏览: 2139934 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

knockoutjs 静动态数据、行为绑定,计算属性及Sync同步更新 Value值更新事件控制

 
阅读更多
data-bind="text: firstName"中data-bind属性是Knockout 用来显示关联UI和viewmodel的桥梁, text 表示把绑定的文本赋值给DOM元素

click 用来关联按钮点击事件

data-bind="value: firstName"来动态绑定到input 输入框的值 当文本框的值发生变化时,ko先更新viewmodel的数据,然后根据observables,来更新Label的值。valueUpdate: "afterkeydown"'可以控制什么事件才触发value的更新操作, 默认onchange

observables: 观察者模式,当属性发生变化时,主动通知相关者

computed properties: 根据基础属性计算得到新的属性,当基础属性发生变化时,ko会自动重新计算新的值

// 创建一个简单的viewmodel 
// This is a simple *viewmodel* - JavaScript that defines the data and behavior of your UI
function AppViewModel() {
    this.firstName = "Bert";
    this.lastName = "Bertington";

    // 动态属性
    this.firstName = ko.observable("Bert");
    this.lastName = ko.observable("Bertington");

    // computed properties 计算属性
    this.fullName = ko.computed(function() {
        return this.firstName() + " " + this.lastName();    
    }, this);

    // last name变大写函数(行为)
    this.capitalizeLastName = function() {
        var currentVal = this.lastName();        // Read the current value
        this.lastName(currentVal.toUpperCase()); // Write back a modified value
    };
}

// Activates knockout.js
ko.applyBindings(new AppViewModel());

// data-bind属性是Knockout 用来显示关联UI和viewmodel的桥梁 text 表示把绑定的文本赋值给DOM元素
<!-- This is a *view* - HTML markup that defines the appearance of your UI -->

// 静态文本绑定
<p>First name: <strong data-bind="text: firstName">todo</strong></p>
<p>Last name: <strong data-bind="text: lastName">todo</strong></p>

// 使用data-bind="value: firstName"来动态绑定到input 输入框的值 当文本框的值发生变化时,ko先更新viewmodel的数据,然后根据observables,来更新Label的值
<p>First name: <input data-bind="value: firstName" /></p>
<p>Last name: <input data-bind="value: lastName" /></p>
<p>Full name: <strong data-bind="text: fullName"></strong></p>

<button data-bind="click: capitalizeLastName">Go caps</button>

分享到:
评论

相关推荐

    ko knockoutjs动态属性绑定技巧应用

    ko的动态属性是指,ViewModel不确定的属性,而后期却需要的属性,本文将详细介绍,需要的朋友参考下

    KnockoutJS

    KnockoutJS包括mapping插件,成熟前端框架,结合Nhibernate使用,大幅减少数据绑定代码操作

    KnockoutJS 3.X API 第四章之数据控制流foreach绑定

    主要介绍了KnockoutJS 3.X API 第四章之数据控制流foreach绑定的相关资料,需要的朋友可以参考下

    knockoutjs2.1.0

    knockoutjs,前台MVVM模式实现框架。knockoutjs能使前台数据源与html页面分离开来,让程序员专注于数据的变化。详情请参照knockoutjs.com。本文件于2012-7-31下载于knockout官方网站,版本号2.1.0

    KnockoutJS 3.X API 第四章之事件event绑定

    event绑定即为事件绑定,即当触发相关DOM事件的时候回调函数,这篇文章主要介绍了KnockoutJS 3.X API 第四章之事件event绑定的相关知识,感兴趣的朋友一起看看吧

    [KnockoutJS] KnockoutJS 入门教程 (英文版)

    [Packt Publishing] KnockoutJS 入门教程 (英文版) [Packt Publishing] KnockoutJS Starter (E-Book) ☆ 出版信息:☆ [作者信息] Eric M. Barnard [出版机构] Packt Publishing [出版日期] 2012年11月23日 ...

    KnockoutJS Essentials(PACKT,2015)

    KnockoutJS is a Model View ViewModel (MVVM) framework that allows you to simplify the design of complex user. Knockout makes data manipulation simple and leads to maintainable web applications. ...

    KnockoutJS 官方文档汉化版

    KnockoutJs官方文档汉化完整版+Knockout精品文章,绝对超值

    Asp.Net MVC 4 KnockoutJS 框架实例

    Asp.Net MVC 4 KnockoutJS 框架实例

    KnockoutJS_3.xx版本

    Knockout(简称KO)是一个JavaScript库,可以帮助您用干净的底层数据模型创建丰富的反应迅速...任何时候你有UI的部分是动态更新(例如,根据用户的行为或者外部数据源的变化而变化),用KO可以帮助您实现起来更简单。

    KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定

    if绑定一般是格式是data-bind=if:attribute,if后所跟属性或表达式的值应为bool值(也可以是非bool值,当非空字符串时则为真),if绑定的作用与visible绑定的作用类似。可控制DOM的显示与隐藏,不一样的地方是,if绑定...

    JavaScript中双向数据绑定详解

    双向数据绑定指的是将对象属性变化绑定到UI,或者反之。换句话说,如果我们有一个拥有name属性的user对象,当我们给user.name赋予一个新值是UI也会相应的显示新的名字。同样的,如果UI包括了一个输入字段用来输入...

    KnockoutJs 帮助文档 中文手册

    KnockoutJs 官方文档汉化完整版手册 中文版 +Knockout精品文章 (如果有下载打不开的,请右键点击文件--》选择“属性”--》点击“解除锁定”,重新打开就可以了)

    knockout.jsUI绑定语法,动态更新

    knockoutjs,简称ko,是一个轻量级的MVVM框架,通过简易的UI绑定语法,实现动态更新UI。

    KnockoutJS Web Development(PACKT,2015)

    Starting with the installation and configuration of KnockoutJS, this book will describe the ins and outs of working with forms using arrays, nesting, and grids. You will learn about event binding and...

    KnockoutJS 3.X API 第四章之数据控制流with绑定

    主要介绍了KnockoutJS 3.X API 第四章之数据控制流with绑定的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定

    不同于value绑定,textinput绑定是实时更新的。 例如: 源码: &lt;p&gt;Login name: &lt;input data-bind="textInput: userName" /&gt; &lt;p&gt;Password: &lt;input type="password" data-bind="textInput: userPassword" /...

Global site tag (gtag.js) - Google Analytics