mikeric/sightglass

可观察的关键路径引擎。

安装: 12

依赖: 0

建议者: 0

安全: 0

星星: 0

关注者: 9

分支: 20

语言:JavaScript

0.2.4 2015-07-31 08:16 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:32:08 UTC


README

可观察的关键路径引擎。通过定义适配器,方便构建自己的可组合关键路径。此模块最初是从Rivets.js数据绑定和模板库中提取出来的。

安装

使用 npmcomponent(1)bower 安装(推荐)。

$ bower install sightglass

API

sightglass.adapters

在能够使用 sightglass 观察对象之前,你需要至少定义一个适配器来组合你的关键路径。适配器只是响应 observeunobserveget 的对象。在 sightglass.adapters 对象上的键是你在组合关键路径时使用的分隔符。

sightglass.adapters['.'] = {
  observe: function(obj, key, callback) {},
  unobserve: function(obj, key, callback) {},
  get: function(obj, key) {},
  set: function(obj, key, value) {}
}

sightglass.root

Sightglass 还需要了解默认的根适配器。这对于没有以适配器键开头的关键路径是必需的。例如,如果默认的根适配器设置为 .,那么关键路径 hello:world 将被解析为 .hello:world

sightglass.root = '.'

sightglass(obj, keypath, callback, [options])

观察提供对象上的完整关键路径。每当关键路径的最终值发生变化时(这可能是关键路径中的任何中间对象发生变化,以及关键路径末尾的属性发生变化),都会调用回调函数。

sightglass(obj, 'user.address:city', function() {})

你可以可选地传入第四个参数来扩展默认选项。这里定义的适配器仅对观察者本地有效。所有全局定义的适配器也将对观察者可用,除非使用现有的分隔符键覆盖。

sightglass(obj, keypath, callback, {
  root: ':',
  adapters: {':': {
    observe: function(obj, key, callback) {},
    unobserve: function(obj, key, callback) {},
    get: function(obj, key) {},
    set: function(obj, key, value) {}
  }}
})

返回一个 Observer 实例,你可以稍后保存(请参阅下文的 Observer API)。

Observer API

observer.value()

读取观察的关键路径的当前最终值。如果整个关键路径不可达,则返回 undefined

observer.setValue()

设置观察对象尾部属性的值(关键路径的最后一段)。如果整个关键路径不可达时调用 setValue,则不执行任何操作。

observer.setValue('Vancouver')

observer.update()

重新计算整个关键路径,为每个键附加观察者或纠正关键路径中已更改的对象上的旧观察者。

如果你的适配器的 subscribe 函数实现得当,则此函数将在关键路径中的任何中间键更改时自动调用,因此你不需要调用此函数。但是,如果你的关键路径使用了不订阅更改的适配器,则需要在更改关键路径该段之后手动调用此函数。

observer.unobserve()

取消观察整个关键路径。

贡献

错误报告

  1. 确保错误可以在最新主分支上重现。
  2. 在 GitHub 上打开一个问题,并包括一个展示错误的隔离 JSFiddle 演示。你提供的信息越多,验证和修复就越容易。

拉取请求

  1. 叉取存储库并创建一个主题分支。
  2. 确保使用 [#1][Closes #1] 将提交与其对应的 issue 关联,如果提交解决了 issue。
  3. 将更改推送到你的叉取,并通过解释和引用原始 issue(如果有的话)提交拉取请求。