首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Knockout简单用法

在最近做的一个项目中,页面数据全部通过js ajax调用webapi接口获取,也就是说页面的数据全部使用javascript脚本填充,这就想到了使用一个MVVM模式的js框架来做这件事,在该项目中选择了...Knockout有如下4大重要概念: 1、声明式绑定 (Declarative Bindings):使用简明易读的语法很容易地将模型(model)数据关联到DOM元素上。...例如: var myViewModel = { personName: 'Bob', personAge: 123 }; 把该ViewModel绑定到HTMl代码中,例如:下面的代码显示...(123) }; 你根本不需要修改view – 所有的data-bind语法依然工作,不同的是他能监控到变化,当值改变时,view会自动更新。...3 使用Knockout 在我们的系统中,每一个页面都会定义一个ViewModel,该ViewModel存储页面所有的数据,并通过ajax读取数据并填写ViewModel。

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Knockout.Js官网学习(简介)

    视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。 2....简单的说,在MVVM里,UI操作涉及的数据被包装成ViewModel,接着在UI输入/显示元素分别标注其对应到ViewModel某个属性值。...当程式码改变ViewModel属性值,其对应的输入/显示栏位元素便会自动更新;而在UI栏位填入不同内容,ViewModel的资料属性也会立刻被修改为新值。...这种双向绑定(Two-Way Binding)的概念,若使用传统做法得在ViewModel的属性修改事件将新值反映到某个显示/输入元素上,还得拦截输入元素的onChange事件,用程式将最新输入结果反应到...而不管是Silverlight/WPF或JavaScript,MVVM程式库的目标即在节省前述自行开发的工夫,只需在显示/输入元素上注明其对应的ViewModel属性,之后全部交给knockout.js

    2.3K20

    Knockout.Js官网学习(text绑定)

    前言 text 绑定到DOM元素上,使得该元素显示的文本值为你绑定的参数。该绑定在显示或者上非常有用,但是你可以用在任何元素上。...; ko.applyBindings(viewModel);     KO将参数值会设置在元素的innerText (IE)或textContent(Firefox和其它相似浏览器...使用函数或者表达式来决定text值  继续在上面的ViewModel中添加一个属性,并且添加一个依赖监控属性 price: ko.observable(24.95) viewModel.priceRating...关于HTML encoding 因为该绑定是设置元素的innerText或textContent (而不是innerHTML),所以它是安全的,没有HTML或者脚本注入的风险。....Knockout.Js官网学习(数组observable) 4.Knockout.Js官网学习(visible绑定)

    2.1K10

    Knockout.Js官网学习(click绑定)

    前言 click绑定在DOM元素上添加事件句柄以便元素被点击的时候执行定义的JavaScript 函数。大部分是用在button,input和连接a上,但是可以在任意元素上使用。...访问事件源对象 有些情况,你可能需要使用事件源对象,Knockout会将这个对象传递到你函数的第一个参数: Click...允许执行默认事件 默认情况下,Knockout会阻止冒泡,防止默认的事件继续执行。例如,如果你点击一个a连接,在执行完自定义事件时它不会连接到href地址。...防止事件冒泡 默认情况下,Knockout允许click事件继续在更高一层的事件句柄上冒泡执行。例如,如果你的元素和父元素都绑定了click事件,那当你点击该元素的时候两个事件都会触发的。...如果需要,你可以通过额外的绑定clickBubble来禁止冒泡。

    2.9K20

    KnockoutJS语法

    2.3 双向绑定   无论数据在ViewModel或者是UI中变化,将会更新另一方,最为灵活的绑定方式,同时代价最大 function AppViewModel() { this.firstName...上述代码将seats对象绑定了一个集合对象,在html view中,通过foreach指令渲染视图,效果如下下图 ? 2.6 增加添加和删除元素功能 ?...调用addSeat方法时,为seats集合添加一个初始化SeatReservation对象   调用removeSeat方法时,knockout将当前dom元素绑定的seat对象作为参赛传入到方法中   ...init方法根据dom元素传入参数当前状态设置初始显示效果;update方法在pointsUsed 每次发生更新时触发,更新元素显示效果  3.2 Template binding   模板绑定用模板的渲染结果来填充关联的...valueAccessor函数   在selectAndFocus自定义绑定中,同时定义了init方法和update方法   在init中为dom元素注册了foucs方法,在update方法中来触发元素的

    2.3K40

    Knockout.Js官网学习(selectedOptions绑定、uniqueName 绑定)

    selectedOptions绑定 selectedOptions绑定用于控制multi-select列表已经被选择的元素,用在使用options绑定的元素上。...支持让用户选择任意JavaScript对象 在上面的例子里,用户可以选择数组里的字符串值,但是选择不限于字符串,如果你愿意你可以声明包含任意JavaScript对象的数组,查看options绑定如何显示...JavaScript对象到列表里。...uniqueName绑定  uniqueName绑定确保所绑定的元素有一个非空的name属性。如果该元素没有name属性,那绑定会给它设置一个unique的字符串值作为name属性。...你不会经常用到它,只有在某些特殊的场景下才用到。   1.在使用KO的时候,一些技术可能依赖于某些元素的name属性,尽快他们没有什么意义。

    2.1K10

    Knockout.Js官网学习(event绑定、submit绑定)

    event绑定 event绑定在DOM元素上添加指定的事件句柄以便元素被触发的时候执行定义的JavaScript 函数。大部分情况下是用在keypress,mouseover和mouseout上。...); 就是通过在一个div上绑定两个事件,一个鼠标点上去的mouseover让下面的div内容显示出来,另一个是鼠标移出mouseout让下面的div内容再隐藏。...submit绑定  submit绑定在form表单上添加指定的事件句柄以便该form被提交的时候执行定义的JavaScript 函数。只能用在表单form元素上。  ...当你使用submit绑定的时候, Knockout会阻止form表单默认的submit动作。换句话说,浏览器会执行你定义的绑定函数而不会提交这个form表单到服务器上。...总共有两个元素一个是录入框,另一个是submit提交按钮 在form上,你可以使用click绑定代替submit绑定。

    2.6K10

    Magicodes.WeiChat——自定义knockoutjs template、component实现微信自定义菜单

    == undefined  -->”,这个真的不是注释,这个是有用的。为了不产生脏元素,ko支持这种绑定写法。这里先用if做了判断,然后再绑定子集。其余的,就是简单的data-bind语法了。...通过上述模板,我们注意到数据结构中两个关键点:Menus和sub_button,那我们就来看看viewModel。...接下来我就先介绍下类型按钮组的定义与绑定: 类型按钮组——knockout component 如上述代码中,使用了html标签buttonschoices。...就如上述代码中,我们可以知道以下几点: 返回HTML模板 传递参数,绑定compoent ViewModel 那么封装knockout compoent,有助于我们封装一些通用UI组件,就比如按钮组类型选择...总结 通过使用knockoutjs 的动态模板,我们可以很方便的根据需要加载不同的模板进行绑定显示。

    90930

    Magicodes.WeiChat——自定义knockoutjs template、component实现微信自定义菜单

    == undefined  -->”,这个真的不是注释,这个是有用的。为了不产生脏元素,ko支持这种绑定写法。这里先用if做了判断,然后再绑定子集。其余的,就是简单的data-bind语法了。...通过上述模板,我们注意到数据结构中两个关键点:Menus和sub_button,那我们就来看看viewModel。...接下来我就先介绍下类型按钮组的定义与绑定: 类型按钮组——knockout component 如上述代码中,使用了html标签buttonschoices。...就如上述代码中,我们可以知道以下几点: 返回HTML模板 传递参数,绑定compoent ViewModel 那么封装knockout compoent,有助于我们封装一些通用UI组件,就比如按钮组类型选择...总结 通过使用knockoutjs 的动态模板,我们可以很方便的根据需要加载不同的模板进行绑定显示。

    84440

    Knockout.Js官网学习(value绑定)

    前言 value绑定是关联DOM元素的值到view model的属性上。主要是用在表单控件,和上。...当用户编辑表单控件的时候, view model对应的属性值会自动更新。同样,当你更新view model属性的时候,相对应的元素值在页面上也会自动更新。...注:如果你在checkbox或者radio button上使用checked绑定来读取或者写入元素的 checked状态,而不是value 值的绑定。...绑定下拉菜单drop-down list(例如SELECT)  Knockout对下拉菜单drop-down list绑定有一个特殊的支持,那就是在读取和写入绑定的时候,这个值可以是任意JavaScript...更新observable和non-observable属性值 如果你用value绑定将你的表单元素和你的observable属性关联起来,KO设置的2-way的双向绑定,任何一方改变都会更新另外一方的值

    2.2K10

    MVC3.0+knockout.js+Ajax 实现简单的增删改查

    我们采用MVC和knockout.js实现一个简单的学生信息管理,实现学生信息的增删改查功能。通过knockout.js来进行数据的绑定,你会发现代码变得很优雅。...在该项目中我们会用到razor视图以及Layout模板、RenderSection和Html.Partial等razor语法中的基本功能 项目需要添加knockout.js文件的引用,可以到官网上下载。...一、我们新建一个空的MVC项目 ? knockout.js在Script文件夹中,只用关注带黄色底纹的文件,其他没有用。...,接收一个@ViewBag.Data的jason数据(该json数据是list序列化来的,查看源代码就可以看到该数据),通过knockout.js把数据绑定到页面中。...,与Index.cshtm页面类似,该页面也是接收一个json数据,并通过knockout.js把数据绑定到页面中 @{ ViewBag.Title = "eidt"; Layout =

    2.4K31

    如何在 Discourse 中批量移动主题到不同的分类中

    在社区运行一段时间以后,我们可能需要对社区的内容进行调整。 这篇文章介绍了如何在 Discourse 中批量从一个分类移动到另一个分类。...例如,我们需要将下面的主题批量从当前的分类中移动到另外一个叫做 数据库 的分类中。 操作步骤 下面描述了相关的步骤。 选择 选择你需要移动的主题。...批量操作 当你选择批量操作以后,当前的浏览器界面就会弹出一个小对话框。 在这个小对话框中,你可以选择设置分类。 选择设置分类 在随后的界面中,选择设置的分类。 然后保存就可以了。...经过上面的步骤就可以完成对主题的分类的批量移动了。 需要注意的是,主题分类的批量移动不会修改当前主题的的排序,如果你使用编辑方式在主题内调整分类的话,那么调整的主题分类将会排序到第一位。...这是因为在主题内对分类的调整方式等于修改了主题,Discourse 对主题的修改是会更新主题修改日期的,在 Discourse 首页中对页面的排序是按照主题修改后的时间进行排序的,因此会将修改后的主题排序在最前面

    1.2K00
    领券