Qooxdoo 有这种有趣的数据绑定方式:
this.bind('selection[0].name', textfield, 'value')
当发生以下任何情况时,这将使用第一个选定项目的名称更新文本字段值:
- this.selection 设置为一个新数组。
- this.selection 被修改,以便第一项更改。
- 所选项目的名称属性更改。
换句话说,它监视 selection 属性、数组本身和项的更改,并执行所有需要的侦听器管理:如果 selection[0] 更改,它会停止观察先前选择的项。
是否有任何库做同样的事情,可能基于 Object.observe 或 watch.js?