way.js - 轻量级、持久化的双向绑定JS库

AngularJS的双向绑定一直为人称道,但使用AngularJS需要对页面组件化,学习成本还是很高的。

本文源自 https://github.com/gwendall/way.js 边学边译。

使用:引用一个js文件即可。

<script src="way.min.js"></script>

way.js.  官方JS脚本 点击下载

 

开始:

声明一个HTML元素和一些标记

 <form way-data="myFormData" way-persistent="true">
    <input type="text" name="name">
    <input type="text" name="age">
    <input type="text" name="gender">
  </form>

  Name: <span way-data="myFormData.name"></span>

现在每一个变化将存储内存。绑定跨度的html将被改变。和绑定数据将持续,这意味着你的HTML会填充你的页面重新加载数据。

文档:

 
名称类型默认值描述
datastringnull允许定义点分离路径数据将存储的地方。可以包括数组。当表单上使用时,一个json变量包括所有的输入了一个[名字]属性将被创建并存储在指定的存储。通过“__all__”路径访问所有的way.js的数据。
defaultstrignnull如果没有绑定值,链接的默认数据设置一个元素.
    
    
    
    
    
    
    

 

转载于:https://www.cnblogs.com/blogs2014/p/5488938.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Bindable.js 实现了灵活、快速的双向数据绑定的 JavaScript 。 Two-way data binding means linking properties of two separate objects - when one changes, the other will automatically update with that change.  It enables much easier interactions between data models and UIs, among other uses outside of MVC. Bindable.js is similar to Ember's data-binding system, except it doesn't include anything View related, so the library has many use-cases - whether replacing Backbone's Model, providing a way to maintain the state between server <-> client for a realtime front-end application (similar to Firebase), or perhaps a way to communicate between server <-> server for a realtime distributed Node.js application. Projects using bindable.js Paperclip.js - data-bindable templating engine. Sherpa.js - online tours library Mojo.js - javascript MVC framework. AWSM - aws library. ditto - synchronized user interactions across browsers. 示例代码: var bindable = require("bindable"); var person = new bindable.Object({   name: "craig",   last: "condon",   location: {     city: "San Francisco"   } }); person.bind("location.zip", function(value) {   // 94102 }).now(); //triggers the binding person.set("location.zip", "94102");  //bind location.zip to another property in the model, and do it only once person.bind("location.zip", { to: "zip", max: 1 }).now(); //bind location.zip to another object, and make it bi-directional. person.bind("location.zip", { target: anotherModel, to: "location.zip", bothWays: true }).now(); //chain to multiple items, and limit it! person.bind("location.zip", { to: ["property", "anotherProperty"], max: 1 }).now(); //you can also transform data as it's being bound person.bind("name", {   to: "name2",   map: function (name) {     return name.toUpperCase();   } }).now(); 标签:Bindable
这是一段 Vue.js 的代码,用于显示电梯监控的界面,其中使用了 Element UI 组件。 翻译如下: div.elevator-monitor // 电梯监控界面 el-tabs( // Element UI 的 Tabs 标签页组件,用于切换不同的电梯列表 v-model="tabActive", // 绑定选中的标签页 @tab-click="tabRefresh", // 标签页被点击时触发刷新事件 ref="tabs" // 组件的引用,便于在代码中操作组件 ) el-tab-pane( // 标签页的内容,包括电梯列表和详情信息 lazy, // 延迟加载标签页内容 ref="", // 引用标签页内容,便于在代码中操作 :label="$t(`message.menu.ElevatorIOT`)", // 标签页的名称,使用国际化语言 name="ElevatorIOT" // 标签页的唯一标识 ) div.content(:style="{height:contentHeight - 32 + 'px'}") // 标签页的内容区域,包括电梯列表和详情信息 div.top-part // 电梯列表的顶部区域,包括搜索框和搜索按钮 div.elevator-list // 电梯列表的区域 .list-btnAndInput // 搜索框和搜索按钮 el-input( // Element UI 的 Input 输入框组件 v-clear-emoji="true", // 清除表情符号 :placeholder="$t(`message.searchPlaceholder.search`, {name: ''})", // 搜索框的占位符,使用国际化语言 v-model="listKeyword", // 绑定搜索关键字 size="small", // 输入框的尺寸 @keyup.enter.native="searchList" // 监听 Enter 键的按下事件,触发搜索功能 ) el-button( // Element UI 的 Button 按钮组件 slot="append", // 将按钮放到输入框的右侧 icon="el-icon-search", // 按钮的图标 @click="searchList" // 点击按钮触发搜索功能 ) .list-content // 电梯列表的内容区域 .item // 每一个电梯列表项 img(src="~@/assets/elevatorImg/door.png") // 电梯图片 .right // 电梯信息 .title Building 4,Lift1 // 电梯名称 .desc 31104414002022050101 // 电梯编号 .desc 2 Hangleton Way, Hove BN3 8AG // 电梯地址 div.elevator-info // 电梯详情信息的区域 elevator-status // 电梯状态 elevator-alarm(slot="alarm") // 电梯报警信息 // - div.inner-status div.elevator-card-box // 电梯详情信息的卡片区域
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值