跳到主要内容
知识地图src、bind 和 propBind 有什么区别?ArcBlock 体系

你在这里。看看这个问题与其他知识怎样相连。

选择节点前往页面 · 展开后可留在地图中阅读

知识地图沿着连接,读懂一个问题
← AFS 与界面

一个问题

src、bind 和 propBind 有什么区别?

读取资源、写回输入与更新属性,是不同的连接。

以任务标题为例:一个地方只显示标题,另一个地方允许编辑标题。它们都与同一个资源有关,但所需操作不同。

字段连接职责读例子时应问什么
src只读数据连接这个节点怎样解释读到的资源?
bind输入的读写连接用户改值后写回哪里?
propBind服务端把资源值连接到特定属性哪个属性随资源改变?

把三个连接放进同一个任务应用,就更容易分清:

  • 任务列表通过 src 读取一组任务,显示标题和状态。
  • 标题输入框通过 bind 读取标题,编辑后向相应资源写回新标题。
  • 列表还有“按什么排序”这个属性,也就是界面的一项设置。propBind 可以让这个属性跟随另一个资源中保存的排序偏好。

例如教学映射 {"sort.field":"/example/preferences/task-sort"} 表示:从这个地址取值,把它交给 sort.field 属性。资源值若从 title 改成 status,运行时会把新的属性值传给渲染器。这里更新的是列表设置,不是把某个任务标题改写了。应用仍需提供示例资源与支持这些字段的节点。

这是节点合同中的职责区分,不是承诺所有节点、所有渲染端都以相同方式支持三种连接。比如一个列表如何解释 src,与一个图片节点如何读取媒体资源,并非同一逻辑。

绑定也不会绕过权限:能显示一个输入框,不代表当前调用者有权写入背后的资源。

继续阅读

技术文档:查阅完整说明。

检查一下理解

只想让排序属性跟随一个资源变化,应先研究哪个字段?

propBind。它把资源值连接到特定属性;仍要核对目标运行时支持。

沿着学习路径继续