首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对小数据树使用angularfire $bind与$update

对小数据树使用angularfire $bind与$update
EN

Stack Overflow用户
提问于 2014-03-06 18:11:11
回答 2查看 238关注 0票数 1

我刚刚从AngularFire开始我的第一个项目,对于在每个子元素上显式地使用$bind来处理整个数据树和$update,我感到有点困惑。

天真地,似乎很容易$bind的树根和被做。但是有角度的炮火医生说:

这种绑定对于字符串、布尔值和数字这样的原始值非常有用。

对我来说,尝试将一棵深树与1,000多个节点和多个级别同步是有意义的。但我在看一个有50个节点和3-4个层次的案子。我是不是遗漏了一些关于$bind的东西,使得它不适合自动保持整个树的同步?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-07 23:31:07

当您针对整个树进行$bind时,您将为每个更改事件发送和接收整个树。例如,

代码语言:javascript
复制
/widgets/one/color/

如果我在小部件上使用$bind(),那么每次小部件颜色发生变化时,我都会协调系统中的每个小部件。相反,要更新小部件上的颜色,我必须将整个树写回Firebase,有效地将系统中的每个小部件设置为它(希望是)预先存在的值。

相反,我可以使用双向同步来导入更改:

代码语言:javascript
复制
var ref = new Firebase(URL+'/widgets');
$scope.widgets = $firebase(ref);

当我想更新一个时,执行如下操作:

代码语言:javascript
复制
$scope.updateColor = function(widgetKey, color) {
    var child = $scope.widgets.$child(widgetKey);
    child.color = color;
    child.$save(); // only save one record, phew
});

更高效、更安全,因为用户不会无意中覆盖他们不打算修改的其他记录中的更改。

如果列表仅由单个用户使用,并且从不并发修改,那么这就不是什么问题了,唯一关心的是带宽(对于您的50个节点来说,这可能不是什么大不了的事情)。

票数 0
EN

Stack Overflow用户

发布于 2014-03-08 09:44:50

我刚刚为您创建了一个普朗克,这是一个您想要的最简单的CRUD示例。

您也可以使用git it。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22232598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档