ko.bindingHandlers是先执行init进行初始化数据的绑定(如果需要执行updata进行数据更新可以不用初始化);

 init: function(element, valueAccessor) {
//初始化数据--然后执行updata进行需要更新数据的绑定,添加订阅
//如果在updata进行了数据的执行,init可以添加初始化事件
var value = valueAccessor(); // Get the current value of the current property we're bound to
$(element).text(value); // jQuery will hide/show the element depending on whether "value" or true or false
},

ko.bindinHandlers.init

在updata里面,才是订阅产生的时候,而不是在init的时候,数据就绑定了订阅;

 update: function(element, valueAccessor, allBindings) {
var value = ko.unwrap(valueAccessor()); //执行更新数据绑定,必须要执行一次否则无法确定添加订阅
//var value = valueAccessor()(); // Get the current value of the current property we're bound to
$(element).text(value);
}

ko.dindingHandlers.updata

完整代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="js/jquery-2.1.0.js"></script>
<script type="text/javascript" src="js/knockout-3.4.0.debug.js"></script>
<script type="text/javascript">
ko.bindingHandlers.slideVisible = {
init: function(element, valueAccessor) {
//初始化数据--然后执行updata进行需要更新数据的绑定,添加订阅
//如果在updata进行了数据的执行,init可以添加初始化事件
var value = valueAccessor(); // Get the current value of the current property we're bound to
$(element).text(value); // jQuery will hide/show the element depending on whether "value" or true or false
},
update: function(element, valueAccessor, allBindings) {
var value = ko.unwrap(valueAccessor()); //执行更新数据绑定,必须要执行一次否则无法确定添加订阅
//var value = valueAccessor()(); // Get the current value of the current property we're bound to
$(element).text(value);
}
};
var model = {
te: ko.observable("ttttttttt"),
aaa: function() {
this.te("aaaaaaaaaaaaaaaaaaaa");
}
}
window.onload = function() {
ko.applyBindings(model, document.body)
}
</script>
</head> <body>
<div data-bind="slideVisible:te"></div>
<input type="button" value="aaaaaaaaa" data-bind="click:aaa" />
</body>
</html>

ko.bindingHandlers.model

注:小七目前还是小白,写的博客为笔记类型的博客,是在项目中遇到的问题,仅用于学习。

  涉及到原理部分还未做总结。

  如果内容有不对、不全面或者其他的问题,欢迎大家纠正。

knockoutjs关于ko.bindingHandlers的updata订阅的更多相关文章

  1. KnockoutJS 3.X API 第三章 计算监控属性(3) KO如何实现依赖追踪

    KO是如何实现自动更新的 初学者可以掠过该篇,如果你是一个刨根问底的开发者,那本节将告诉你KO是如何实现依赖追踪和UI自动更新的. 其实很简单,KO的依赖追踪算法如下: 当你声明一个计算监控属性,KO ...

  2. 前端开发框架Bootstrap和KnockoutJS

    江湖中那场异常惨烈的厮杀,如今都快被人遗忘了.当年,所有的武林同道为了同一个敌人都拼尽了全力,为数不多的幸存者心灰意冷,隐姓埋名,远赴他乡,他们将唯一的希望寄托给时间.少年子弟江湖老,红颜少女的鬓边也 ...

  3. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(一)

    前言:出于某种原因,需要学习下Knockout.js,这个组件很早前听说过,但一直没尝试使用,这两天学习了下,觉得它真心不错,双向绑定的机制简直太爽了.今天打算结合bootstrapTable和Kno ...

  4. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查

    前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用法,都是写基础应用,根本谈不上封装,仅仅是避免了html控件的取值和赋值,远远没有将MVVM的精妙展现出来.最近项目打 ...

  5. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(二)

    前言:上篇 JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(一) 介绍了下knockout.js的一些基础用法,由于篇幅的关系,所以只能分成两篇,望见谅!昨天就 ...

  6. MVVM架构~knockoutjs系列之从Knockout.Validation.js源码中学习它的用法

    返回目录 说在前 有时,我们在使用一个插件时,在网上即找不到它的相关API,这时,我们会很抓狂的,与其抓狂,还不如踏下心来,分析一下它的源码,事实上,对于JS这种开发语言来说,它开发的插件的使用方法都 ...

  7. SpreadJS 中应用 KnockoutJS 技术

    SpreadJS 支持 Knockout (KO)技术, KnockoutJS 是一个使用 MVVM 模式的 JavaScript 库,允许双向数据绑定,使数据和UI界面进行实时的交互更新.关于KO的 ...

  8. JS组件系列——KnockoutJS用法

    前言:出于某种原因,需要学习下Knockout.js,这个组件很早前听说过,但一直没尝试使用,这两天学习了下,觉得它真心不错,双向绑定的机制简直太爽了.今天打算结合bootstrapTable和Kno ...

  9. BootstrapTable+KnockoutJS

    BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查   前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用 ...

随机推荐

  1. 《深入分析Linux内核源代码》读书、私藏笔记大放送

    秉承着"不懂操作系统原理的程序员不是合格的程序员"的至理名言,鄙人又是买陈莉君老师的“Linux教学视频”,又是研读其力作<深入分析Linux内核源代码>,先将总结笔记 ...

  2. 树莓派+tomcat+mysql安装及配置

    0x00 系统:ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi 该版本中apt源在国内访问速度不算慢,可以不换,但软件包不完整,建议添加阿里云源 deb ...

  3. 关于dao层的封装和前端分页的结合(文章有点长,耐心点哦)

    任何一个封装讲究的是,实用,多状态.Action:     任何一个Action继承分页有关参数类PageManage,自然考虑的到分页效果,我们必须定义下几个分页的参数.并根据这个参数进行查值. 然 ...

  4. yum安装时遇到的问题

    在yum 安装出现下面的提示的时候,需要安装GPG key warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e85 ...

  5. CMMI三个过程域的流程及达到特定目标、共性目标的要求(RD需求管理过程,PI产品集成过程,TS技术解决方案)

    RD需求管理过程 通过面谈的方式获取相关干系人关于产品生命周期各阶段的需求.期望,限制条件,接口 将相关干系人的需求.期望,限制条件,接口转化成用户需求说明书 依据客户需求,确定产品或产品组件需求,形 ...

  6. sql多条件查询语句

    如上图:三个文本可选项,那sql语句怎么写呢? 1.首先获取三个文本的值分别为Name,Age,Sex. 2.string sql="select * from 表 where 1=1&qu ...

  7. Maven deploy 部署 jar+pom 到 Nexus 私服

    经验之谈 工作中,我们常常需要将基础架构部门的 jar 包提供给业务部门的同事使用,那么,需要将 jar 包 deploy 到 nexus 私服上,网上资料不是很多,这里说一下具体细节. 首先,是打 ...

  8. 【手记】VSTO部署中的坑

    局域网部署,客户机安装时报[部署清单签名的证书或其位置不受信任]: 在[Internet 属性]里(可运行inetcpl.cpl打开),把服务器内网IP加进[受信任站点]就好,不用管excel信任中心 ...

  9. 使用idea创建一个maven工程

    使用idea创建一个maven工程 一.创建maven工程 二.输入工程名 三.指定maven仓库 四.点击finish 五.修改工程结构(file->project structure) 六. ...

  10. 10种JavaScript开发者必备的VS Code插件

    摘要: 好的代码插件可以让工作效率翻倍,心情也更加舒畅! 原文:10 Must-have VS Code Extensions for JavaScript Developers 作者:Michael ...