knockout.js学习之observables

本文介绍了MVVM模式的基本概念,并通过一个简单的Knockout.js实例展示了如何实现视图与模型之间的双向绑定。文章重点讲解了如何创建viewmodel,设置监控属性,并通过实例演示了监控属性的读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在学习ko之前先来介绍下MVVM模式:model:程序中存储的数据,通常说是向服务器调用 Ajax 读写这个存储的模型数据。  view model: 在 UI 上,纯 code 描述的数据以及操作。view: 一个可见的,交互式的,表示 view model 状态的 UI。 ​

      我们首先来创建个viewmodel模型 当然如果你要是想运行一下的程序的话应引入ko和jquery的js文件:​​

view层:​​

     先建立个个id为bindId的div块  在其中放入内容为The name is 和span标签在span标签中添加绑定data-bind="text:personName"

vm层:

var viewmodel={

       personName:ko.observable('tom'),​

       personAge:ko.observable(12)

};​​

ko.applyBindings(viewmodel,$("#bindId")[0]); ​

第一个参数你想用于声明式绑定 。

第二个参数(可选),可以声明成使用 data-bind 的 HTML 元素或者容器。

    observables的读和写

  读取监控属性(observable)的值,只需要直接调用监控属性(observable)(不需 要参数),例如 ViewModel.personName() 将返回''tom'', ViewModel.personAge() 将返回 12。  写一个新值到监控属性(observable)上,调用这个 observable 属性并当新值作为参 数。例如:调用 ViewModel.personName('Mary') 将更新 name 值为'Mary'。  给一个 model 对象的多个属性写入新值,你可以使用链式语法。例如: ViewModel.personName('Mary').personAge(50) 将会将 name 更新为 'Mary' 并且 将 age 更新为 50. ​

     监控属性(observables)的特征就是监控(observed),例如其它代码可以说 我需要得到对象变化的通知,所以 KO 内部有很多内置的绑定语法。所以如果你 的代码写成 data-bind="text: personName", text 绑定注册到自身,一旦 personName 的值改变,它就能得到通知。

当然调用 myViewModel.personName('Mary')改变 name 的值,text 绑定将自动更 新这个新值到相应的 DOM 元素上。这就是如何将 view model 的改变传播到 view 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值