gpt4 book ai didi

angularjs - Firebase AngularFire 隐式和显式同步之间的区别

转载 作者:行者123 更新时间:2023-12-04 13:11:36 25 4
gpt4 key购买 nike

我是火力基地的新手。我想用 angularjs 构建它,我发现了 angularfire。

在列出的 angularFire 文档中
隐式和显式同步。我试图理解 github 中的文档,但我仍然不明白有什么区别以及如何使用它们。angularFire()angularFireCollection()
另外,angularFire() 中的参数是什么意思?和 angularFireCollection() ?

感谢广告

最佳答案

使用angularFire如果您想要隐式同步,即对模型所做的任何更改都会立即传播到所有其他客户端(反之亦然)。

使用angularFireCollection如果您想控制必须将任何本地数据更改发送到服务器的时间。任何远程更改仍将自动更新您的本地集合。

隐式同步:

myapp.controller('MyCtrl', ['$scope', 'angularFire',
function MyCtrl($scope, angularFire) {
var promise = angularFire(url, $scope, 'items', []);
}
]);

第一个参数是您要存储/检索数据的 Firebase 的位置。第二个参数是范围,第三个参数是 $scope 下的属性名称,您希望在履行 promise 后立即绑定(bind)数据。例如:

promise.then(function() {
// Data available in $scope.items
});

第四个参数是您想要的 JS 对象中的数据类型。使用 []对于数组, {}对于对象, ""对于字符串, 1对于数字和 true为 bool 值。请注意,如果提供的 Firebase 位置中没有数据,您也可以使用此参数设置默认值。

在隐式同步中,如果要进行任何更改,只需修改 $scope.items并且更改将通过 Firebase 自动与所有其他客户端同步。同样,任何远程更改都会自动更新 $scope.items .

显式同步:

myapp.controller('MyCtrl', ['$scope', 'angularFireCollection',
function MyCtrl($scope, angularFireCollection) {
$scope.items = angularFireCollection(url);
}
]);

此方法只接受一个参数。如果要添加或删除项目,请使用 add , removeupdate方法。例如:

$scope.items.add({test: "object"});

由于 angularFireCollection不需要范围,如果您想在 Controller 之外使用 Firebase(如 Angular 指令、模块等),也可以使用它。希望这会有所帮助!

关于angularjs - Firebase AngularFire 隐式和显式同步之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16733962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com