我是火力基地的新手。我想用 angularjs 构建它,我发现了 angularfire。
在 angularFire 文档中列出了隐式和显式同步。我试图理解 github 中的文档,但我仍然不明白有什么区别以及如何使用它们。
angularFire()
和angularFireCollection()
angularFire()
另外,和中的论点是什么意思angularFireCollection()
?
感谢广告
我是火力基地的新手。我想用 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.then(function() {
// Data available in $scope.items
});
第四个参数是您想要的 JS 对象中的数据类型。用于[]
数组、{}
对象、""
字符串、1
数字和true
布尔值。请注意,如果提供的 Firebase 位置中没有数据,您也可以使用此参数设置默认值。
在隐式同步中,如果您想进行任何更改,只需进行修改$scope.items
,更改将通过 Firebase 自动与所有其他客户端同步。同样,远程进行的任何更改都会自动更新$scope.items
。
显式同步:
myapp.controller('MyCtrl', ['$scope', 'angularFireCollection',
function MyCtrl($scope, angularFireCollection) {
$scope.items = angularFireCollection(url);
}
]);
此方法只接受一个参数。如果要添加或删除项目,请使用add
、remove
或update
方法。例如:
$scope.items.add({test: "object"});
由于angularFireCollection
不需要范围,如果您想在控制器之外使用 Firebase(如角度指令、模块等),也可以使用它。希望这会有所帮助!