【发布时间】:2023-04-05 18:16:01
【问题描述】:
我正在使用带有 angularfire 和 firebase 的 angularJS 1.3。
我确实创建了一些封装 firebase 对象的工厂,而且效果很好。 3 路数据绑定真的很酷。
我计划使用 firebase 构建一个大型应用程序以实现数据持久性,但我面临一个大问题:
在我的业务模型中,我希望某些模型/集合支持 3 路数据绑定,但我希望其他集合不实时更新。
访问生成的网站的一些客户在看到网站内容实时更新时可能会感到害怕 - 我不希望这样。 想象一下,您正在阅读一篇文章,不知何故冗长而复杂,您将注意力集中在一个您无法理解的段落上,突然,该段落消失并被一个新段落所取代。现在假设您对 Web 开发一无所知。您可能会开始考虑向一些专业人士咨询您的心理健康问题,或者认为您的计算机被黑客入侵了。谁知道!
所以我想为这篇文章禁用 3 路数据绑定,并避免这种边界线客户端电话呼叫。我发现的唯一解决方案是不使用 fireangular,而是使用 beyond angularfire documentation section,并删除以下行:
ref.on("value", function(snapshot) {
$timeout(function() {
$scope.data = snapshot.val();
});
});
这将解决问题,但是在我的管理界面中,我必须实现第二个工厂,以便管理员用户可以访问文章的 3 路数据绑定 - 这不是很干燥。
在我的文章控制器中,我必须这样写:
$scope.loadArticle = function(){
if(UserService.type === 'admin'){
AdminArticleFactory.get(id);
}
else{
ArticleFactory.get(id);
}
}
还有其他方法可以设置 firebase 以禁用拉取更新吗?
【问题讨论】:
-
这没有任何意义。它说:“我想同步但不同步。”如果您不希望其他客户端看到数据,则不要写入他们正在侦听的路径。写入不同的路径。听起来您在尝试编写应用程序时没有先阅读文档并了解您正在使用的工具,这将是痛苦和浪费时间的秘诀。
-
@Kato 感谢您的“建设性”评论。请澄清您对写入不同路径的建议的评论,我想为一类用户同步,而不是为客人同步。把“but”换成“and”,就对了。 “我想同步而不是同步”
标签: angularjs firebase angularfire