Bindable.js

双向数据绑定JS库
授权协议 MIT
开发语言 JavaScript
所属分类 Web应用开发、 常用JavaScript包
软件类型 开源软件
地区 不详
投 递 者 公西博实
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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();
  • ng-repeat:通过 in 的方式遍历数组中的每一项 将数组中的数据写到表格中 <script> var m1 = angular.module('myApp',[]); m1.controller('A',['$scope','$filter',function($scope,$filter){ $scope.dataList = [ {'name':'yellow'

  • ## Angular学习笔记(1) ## AngularJS 表达式 1. AngularJS 表达式写在双大括号内:{{ expression }}。 2. AngularJS 表达式把数据绑定到 HTML,这与 ng-bind 指令有异曲同工之妙。 3. AngularJS 将在表达式书写的位置"输出"数据。 4. AngularJS 表达式 很像 JavaScript 表达式:它们可以包含文

  • flex中,属性上标记Bindable,在属性变化时能进行数据绑定. 但是在只读的属性上加这标记,则不会起作用. 比如这个页面 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/fle

  • 如何封装JS和CSS文件为服务器端控件 翻译|其它|编辑:郝浩|2008-05-26 11:51:46.000|阅读 1204 次 概述: 我们以封装一个JS的日期控件为列子,将它和服务器的TextBox结合在一起做成一个服务器控件,以达到直接托上去就可以使用的效果。其实很简单,大家共同学习。先看看效果图: 方法: 首先:下载一个JS的日期组件,带封装。 然后:建一个日期类文件CalendarBo

  • 概述 Ext.Component是所有Ext组件的基类,这在Ext.Component的API中第一句话就提到了。然后第二段说明了它包含的基本功能:隐藏/显示、启用/禁用以及尺寸控制等。除了以上这些基本功能,其实还包含了很多东西。当然,在API中不可能面面俱到,那么,我们应当如何去理解这个组件基类呢? Ext.Component===DIV 如果将一个Ext.Component渲染到页面,会看到该

  • 本功能是基于封装的datetime-input框进行的二次封装,加上上下左右修改日期的功能,只提供一种思路。 前端框架aurelia formatString formatString country MM/DD/YY h:mm A USA DD.MM.YY HH:mm German DD/MM/YY H:mm Mexico DD/MM/YY h:mm A India YY/MM/DD HH:mm

  • Flex多功能输入验证控件ValidInput(仿CheckForm.js),抛弃Flex Validator另辟蹊径.   package com.ux.utils { import com.ux.components.FileInput import com.ux.components.ValidInput; import com.ux.autocomplete.AutoComplete

  • JavaScript,一种所有主流浏览器都支持的语言,是开发基于浏览器的 Web 应用程序的主力,几乎每年都会受到来自众多开发人员的关注。自然地,框架和库的生态系统自然而然地围绕着 JavaScript 而努力,以简化和增强 JavaScript 应用程序的开发。 这些工具提供从事件处理到代码缩减和数据渲染的功能。以下是开发基于浏览器的 Web 应用程序的 JavaScript 开发人员工具包中最

 相关资料
  • 1. 前言 本小节我们将介绍 Vue 中数据的双向绑定指令 v-model。v-model 的学习相对简单 我们可以用 v-model 指令在表单 、 及 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。 2. 慕课解释 用 v-model 指令在表单 、 及 元素上创建双向数据绑定。它会根据控件类型自动选

  • 出于好奇和增加知识,我想在dom元素和javascript变量之间实现某种双向数据绑定。 我很幸运,在这里@stackoverflow找到了一个很好的答案,解决了我一半的问题,这就引出了这个要点https://gist.github.com/384583,但我仍然无法100%完成这件事。 下面是我的代码示例:http://jsfiddle.net/bpH6Z/ 如果您尝试运行fiddle并单击“查

  • 本文向大家介绍JS原生数据双向绑定实现代码,包括了JS原生数据双向绑定实现代码的使用技巧和注意事项,需要的朋友参考一下 代码如下: 效果示例: 总结 以上所述是小编给大家介绍的JS原生数据双向绑定实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!

  • 本文向大家介绍Angular JS 双向绑定原理?相关面试题,主要包含被问及Angular JS 双向绑定原理?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: Angular将双向绑定转换为一堆watch表达式,然后递归这些表达式检查是否发生过变化,如果变了则执行相应的watcher函数(指view上的指令,如ng-bind,ng-show等或是{{}})。等到model中的值不再发生变化

  • 本文向大家介绍Vue实现双向数据绑定,包括了Vue实现双向数据绑定的使用技巧和注意事项,需要的朋友参考一下 Vue实现双向数据绑定的方式,具体内容如下 Vue是如何实现双向数据绑定的呢?答案是前端数据劫持。其通过Object.defineProperty()方法,这个方法可以设置getter和setter函数,在setter函数中,就可以监听到数据的变化,从而更新绑定的元素的值。 实现对象属性变化

  • 本文向大家介绍实现非常简单的js双向数据绑定,包括了实现非常简单的js双向数据绑定的使用技巧和注意事项,需要的朋友参考一下 双向数据绑定指的就是,绑定对象属性的改变到用户界面的变化的能力,反之亦然。换种说法,如果我们有一个user对象和一个name属性,一旦我们赋了一个新值给user.name,在UI上就会显示新的姓名了。同样地,如果UI包含了一个输入用户姓名的输入框,输入一个新值就应该会使use

  • 本文向大家介绍Angular JS数据的双向绑定详解及实例,包括了Angular JS数据的双向绑定详解及实例的使用技巧和注意事项,需要的朋友参考一下 Angular JS数据的双向绑定 接触AngularJS许了,时常问自己一些问题,如果是我实现它,会在哪些方面选择跟它相同的道路,哪些方面不同。为此,记录了一些思考,给自己回顾,也供他人参考。 初步大致有以下几个方面: 数据双向绑定 视图模型的继

  • Mpx针对表单组件提供了wx:model双向绑定指令,类似于v-model,该指令是一个语法糖指令,监听了组件抛出的输入事件并对绑定的数据进行更新,默认情况下会监听表单组件的input事件,并将event.detail.value中的数据更新到组件的value属性上。 简单实用示例如下: <view> <input type="text" wx:model="{{message}}"> <