2. 监控 1.通过监控创建视图模型 1. 监控 Knockout是基于以下三个核心特性: 监控和依赖跟踪 声明式绑定 模板 在本节,你将第一次了解这三个特性,在这之前,我们先来了解以下MVVM模式和视图模型的概念. 2. MVVM和视图模型 Model-View-View Model (MVVM)是一种构建用户界面的设计模式.它描述了如何将存在复杂性的UI简单地分成三个部分: 模型:用于你的应用程序存储数据.数据被表现为对象在你的业务逻辑里面进行操作(比如,银行账户可以进行转账业务)而且是和任…
6. 显式订阅监控 你通常不需要手动设置订阅,所以初学者应该跳过这一节. 对于高级用户,如果你想注册自己的订阅来监控通知变化,你可以使用 subscribe函数,比如: myViewModel.personName.subscribe(function(newValue) { alert("The person's new name is " + newValue); }); KO内部很多部分都是由subscribe来实现.大多数情况下你不需要使用它,因为内置绑定和模板系统要管理订阅.…
4.纯计算属性 纯计算监控在KO 3.2.0中开始引入,比大多数应用程序使计算监控有更大的性能提升和内存优化.这是因为在自身没有订阅的时候不会保持订阅状态.特性如下 阻止内存泄露 - 避免在应用程序里计算监控不再被引用但是依赖仍然存在. 减少计算开销 - 当值不再被监控不会重新计算计算监控的值. 纯计算监控会在两个状态之间自动切换,基于它是否改变了订阅者. 当订阅者没有发生改变,它会休眠.当进入休眠状态,它释放所有自身依赖的订阅.在这种状态下,它不会订阅访问求值函数里面的的监控对象(尽管它会继续…
2.可写的计算监控 初学者可能想要跳过本节 - 可写的计算监控是相当高级的部分,在大多数情况下不是必需的. 通常,计算监控是一个通过其他监控值计算出的值,因此是只读的. 令人惊讶的是,可以使计算监控值变得可写. 你只需要提供自己的回调函数,输入一些正确的值. 你可以使用一个可写的计算监控,就像一个常规的监控对象,用你自己的逻辑来定义读写.就像一个监控对象一样,您可以使用链接语法将值写入模型对象上的对过监控对象或计算监控对象. 例如, myViewModel.fullName('Joe Smith…
2. 控制流 1. foreach绑定 目的 foreach绑定会遍历一个数组,为每个数组项生成重复的元素标记结构并做关联.这在渲染列表或表格的时候特别有用. 假设你的数组是一个监控数组,之后无论你进行添加,移除还是重新排序,对应的UI结构也会发生相应变化 -- 插入或移除标记结构,或者重排已存在的DOM元素.这不会影响其他的DOM元素,这远比数组发生改变后重新渲染生成foreach输出结构快多了. 当然,你可以嵌套任意数量的foreach绑定,或者其他的控制流绑定,比如if绑定和with绑定.…
5. style绑定 目的 style绑定用来给关联的DOM元素添加或移除一个或多个样式值.在如下情况很有用,比如,当某些值为负时,高亮显示,或者设置容器元素的宽度来匹配数值的改变. (注意:如果你不想应用一个显示的样式值而想用分配一个CSS类样式,请参考css绑定.) 例子 <div data-bind="style: { color: currentProfit() < 0 ? 'red' : 'black' }"> Profit Information <…
4. css绑定 目的 css绑定可以给关联的DOM元素添加或移除一个或多个CSS类.该绑定很有用,比如,当一些值为负数时高亮这些值为红色. (注意:如果你不想使用一个CSS类选择器来附加样式而想直接给style属性赋值,请看style绑定.) 静态类样式例子 <div data-bind="css: { profitWarning: currentProfit() < 0 }"> Profit Information </div> <script…
6. attr绑定 目的 attr绑定可以给关联DOM元素的任何属性赋值.这个绑定很棒,比如,当你想要设置通过视图模型给元素的title属性.img标签的src属性或超链接的href值,当视图模型对应的属性值改变时,绑定的属性值同样会自动改变. 例子 <a data-bind="attr: { href: url, title: details }"> Report </a> <script type="text/javascript"…
3. html绑定 目的 html绑定会使关联的DOM元素显示你参数指定的html内容. 当你的视图模型里面的值是HTML标记字符串,而你想要呈现它,这时候用html绑定特别合适. 例子 <div data-bind="html: details"></div> <script type="text/javascript"> var viewModel = { details: ko.observable() // Initial…
3. 计算监控 1.使用计算监控 如果你有一个监控的属性firstName和另一个lastName,但你想显示全名怎么办? 这就是引入计算监控的原因-这是依赖于一个或多个其他的observables函数,无论这些依赖对象什么时候发生改变,它都将自动更新. 例如,下面给了一个view model 类, function AppViewModel() { this.firstName = ko.observable('Bob'); this.lastName = ko.observable('Smi…
2.通过监控数组工作 1. 监控数组 如果你想检测或者响应一个对象的改变,你用observables.如果你想检测和响应一个集合的改变,使用observableArray.这个在很多情况下都非常有用,比如当你在显示或者编辑多个值而且需要重复的UI部分通过添加和移除来显示/隐藏项. 例子: var myObservableArray = ko.observableArray(); // 初始化空数组 myObservableArray.push('Some value'); // 添加值并通知监控…
5.参考 下面的内容描述了如何构建和使用计算监控. 1. 构建一个计算监控 可以用如下的形式构建一个计算监控: ko.computed( evaluator [, targetObject, options] ) - 这是最常见的构建计算监控的形式. evaluator - 一个用来计算当前计算监控值的函数 targetObject - 如果提供该值,该值定义了当KO请求你的回调函数时函数内部this的值.请看管理this章节查看更多信息. options - 一个包含计算监控特性属性设置的对象…
3.依赖跟踪如何工作 初学者不需要知道这一点,但更高级的开发人员将想知道为我们怎么实现KO自动跟踪依赖性和自动更新UI的正确部分... 它其实相当简单优雅,跟踪算法如下: 当你定义一个计算监控,KO立即调用其求值函数来获得初始值. 当求值函数运行,KO添加一个订阅到任何求值函数可读取的监控对象上(包括其他计算监控对象).订阅的回调函数会触发求值函数重新运行,整个过程循环回到步骤1(释放任何不再使用的旧订阅). KO通知任何订阅者获取你的计算监控的新值. 因此,KO不只是在第一次求值程序运行的时候…
英文原版教程:http://knockoutjs.com/documentation/introduction.html 注:此教程根据英文原版翻译,仅作练习,如有不足或错误,请指正 说明: 对原文中的一些单词的翻译是参考汤姆大叔的翻译方式,如下: observable 监控 observable array 监控数组 computed observable 计算监控 pure computed observable 纯计算监控 1. 入门 1.Knockout怎样工作的以及带来了什么好处 1.…
4.绑定 1. 控制文本内容和外观 1. visible绑定 目的 visible绑定可以根据你传入绑定的值控制关联的DOM元素显示或隐藏. 例子 <div data-bind="visible: shouldShowMessage"> You will see this message only when "shouldShowMessage" holds a true value. </div> <script type="…
2. text绑定 目的 text绑定把传入的参数通过关联的DOM元素来显示文本值. 通常这对像<span>或<em>标签等使用,但技术上你可以对任何元素使用该绑定. 例子 Today's message is: <span data-bind="text: myMessage"></span> <script type="text/javascript"> var viewModel = { myMess…
有些同学问我要swift的中文版教程,为了节省大家的找资料的时间,我就把我网上下载的PDF放到这里共享好了. 点击链接或者右击选择下载文件进行下载:swift2.0中文版教程 在此也感谢翻译者们的贡献!…
Swift3.0语言教程使用占位符格式创建和初始化字符串 Swift3.0语言教程使用占位符格式创建和初始化字符串在很多的编程语言中都存在占位符,占位符就是为指定的内容占留一个位置.此功能一般在开发者不知道在此位置处写什么时使用.在NSString中也为开发者提供了占位符,开发者可以使用占位符格式创建和初始化字符串,此时需要使用到init(format:_:).init(format:locale:_:)或者是localizedStringWithFormat(_:_:)方法. (1)init(…
Asp.Net MVC4.0 官方教程 入门指南之三--添加一个视图 在本节中,您需要修改HelloWorldController类,从而使用视图模板文件,干净优雅的封装生成返回到客户端浏览器HTML的过程. 您将创建一个视图模板文件,其中使用了ASP.NET MVC 3所引入的Razor视图引擎.Razor视图模板文件使用.cshtml文件扩展名,并提供了一个优雅的方式来使用C#语言创建所要输出的HTML.用Razor编写一个视图模板文件时,将所需的字符和键盘敲击数量降到了最低,并实现了快速,…
原文:[ASP.NET Web API教程]2.3.2 创建域模型 Part 2: Creating the Domain Models 第2部分:创建域模型 本文引自:http://www.asp.net/web-api/overview/creating-web-apis/using-web-api-with-entity-fram ework/using-web-api-with-entity-framework,-part-2 Add Models 添加模型 There are thre…
一.安装环境: 系统环境: 系统版本:CentOS Linux release 7.4.1708 (Core) 内核版本:3.10.0-693.el7.x86_64 关闭Firewall与SELinux Zabbix:3.0 架构图: IP分配: Zabbix_Server:192.168.11.153 Zabbix_WEB:192.168.11.151 Zabbix_DB:192.168.11.152 Agent1:192.168.11.135 Agent2:192.168.11.136 在被…
原文:[ASP.NET Web API教程]2.3.7 创建首页 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. Part 7: Creating the Main Page 第7部分:创建首页 本文引自:http://www.asp.net/web-api/overview/creating-web-apis/using-web-api-with-entity-framework/using-web-api-with-entity-…
点这里进入ABP入门教程目录 创建视图模型 在展示层(即JD.CRS.Web.Mvc)的Models下新建文件夹Course //用以存放Course相关视图模型 在JD.CRS.Web.Mvc/Models/Course下新建两个视图模型 只读模型 CourseListViewModel.cs //用于查询Course视图模型 using System.Collections.Generic; using JD.CRS.Course.Dto; namespace JD.CRS.Web.Mode…
data(churn)导入自带的训练集churnTrain和测试集churnTest 用id3.cart.C4.5和C5.0创建决策树模型,并用交叉矩阵评估模型,针对churn数据,哪种模型更合适 决策树模型 ID3/C4.5/CART算法比较 传送门 data(churn)为R自带的训练集,这个data(chun十分特殊) 先对data(churn)训练集和测试集进行数据查询 churnTest数据 奇怪之处,不能存储它的数据,不能查看数据的维度 ,不能查看数据框中每个变量的属性!! > da…
犀牛Rhino 7.0中文版是一款专业的.功能强大的三维建模软件,利用它可以创建.编辑.分析.提供.渲染.动画与转换NURBS线条.曲面.实体与多边形网格:它能轻易整合3DS MAX 与Softimage模型功能部分,对要求精细.弹性与复杂的3D NURBS模型,有点石成金的效能:能输出obj.DXF.IGES.3dm等不同格式,并适用于几乎所有3D软件. 教程简单易操作,软件支持支持Windows操作系统, Win7 Win8 Win10等!!! 下载 Rhino 7.0_64位中文版安装包.…
Swift2.0语言教程之类的属性 类 虽然函数可以简化代码,但是当一个程序中出现成百上千的函数和变量时,代码还是会显得很混乱.为此,人们又引入了新的类型——类.它是人们构建代码所用的一种通用.灵活的构造方式.本章将主要详细讲解类的使用. Swift2.0语言的类与对象 类是一种新的数据类型,类似于生活中犬类.猫类等等.而对象则是将这个抽象的类进行了具体化.例如,在犬类中,有哈士奇,金毛等等,这些就是犬类的具体化,即对象.本节将讲解类的创建以及如何将类进行具体化(即实例化)为对象. Swift2…
zend guard6.0使用教程.doc 一.准备工具 1. ZendGuard-6_0_0 下载地址:http://www.zend.com/en/products/guard/downloads#Windows 2. ZendGuardLoader-70429-PHP-5.4-Windows-x86 下载地址:http://www.zend.com/en/products/guard/downloads#Windows 3. zendguard6.0破解文件 下载地址:http://pan…
学习opencv中文版教程——第二章 所有案例,跑起来~~~然而并没有都跑起来...我只把我能跑的都尽量跑了,毕竟看书还是很生硬,能运行能出结果,才比较好. 越着急,心越慌,越是着急,越要慢,越是陌生,越不能盲进.否则更容易走错路. 看了一些东西发现都挺坑的,然后看了看书,发现书上写的也...所以就把看书笔记,和跑动例程都来做一个整理. 关于如何配置,是重中之重 所以配置写在了这里:http://www.cnblogs.com/letben/p/5278595.html 然后是看书又看回到了这本…
Adobe After Effects 2017-14.0安装教程 第一步:首先请将电脑的网络断开,很简单:禁用本地连接或者拔掉网线,这样就可以免除登录Creative Cloud帐号,安装更方便快捷 第二步:双击文件夹中提供的 "Set-up.exe"开始安装,由于第一步断开了网络,安装过程将会全自动运行,默认安装到c盘: 第三步:成功安装后,运行软件后关闭,打开软件包中的"破解补丁.exe",选择"Audition CC 2015"就可以,亲…
Luminar for Mac是一款多功能照片编辑软件,使用独特的AI工具加快速度,具备AI Sky Enhancer.Accent AI.太阳光线等创新功能.当然也保留了原有的功能,帮助你轻松的修复.增强.编辑照片.现为您带来luminar 3 mac汉化版,下载安装即可使用!   Luminar 3 for Mac汉化版安装教程 luminar 3 mac汉化版镜像包下载完成后,将左侧的[Luminar 3]拖至右侧应用程序安装,如下图.   Luminar 3 for Mac中文特别版软件…