是否可以在 Firebase 的 ng-click 中使用多个 $add
Is it ok to use multiple $add within a ng-click in Firebase
我已经能够在这段代码中获得我正在寻找的行为,但我只是想确保我正朝着正确的方向前进。我也阅读了很多有关事件侦听器的内容,但无法弄清楚如何实现它,所以我想知道我的代码是否同样好、更好或更差。
为我服务:
.factory('Messages', function($firebaseArray, FBURL, $window) {
var messagesRef = new $window.Firebase(FBURL + '/messages');
return $firebaseArray(messagesRef);
})
.factory('Chatroom', function($firebaseArray, FBURL, $window) {
var chatroomRef = new $window.Firebase(FBURL + '/chatroom');
return $firebaseArray(chatroomRef);
})
然后在我的控制器中:
$scope.messages = Messages;
$scope.chatroom = Chatroom;
$scope.addMessage = function(message) {
$scope.messages.$add({
text: message.text,
userName: message.userName
});
$scope.chatroom.$add({
text: message.text,
userName: message.userName,
});
message.text="";
}
所以现在我在 ng-click 上将文本和用户名添加到两个子节点。如果我想将它添加到更多的子节点,比如 profile 和其他任何可能的节点,我可以继续放入引用不同节点的 $add 吗?或者这是不好的做法?提前谢谢你。
将相同的信息添加到 Firebase 数据库中的多个位置称为扇出,这是一种常见的做法。因此,虽然这取决于您的确切需求,但从定义上讲,复制数据并不是坏事。看到这个 blog post about denormalization on the Firebase site.
您可能要考虑使用单个多位置 update()
语句而不是两个单独的 $add()
调用。请参阅此问题的示例:Firebase: How do I update multiple resources atomically? and this blog post on the Firebase web site.
我已经能够在这段代码中获得我正在寻找的行为,但我只是想确保我正朝着正确的方向前进。我也阅读了很多有关事件侦听器的内容,但无法弄清楚如何实现它,所以我想知道我的代码是否同样好、更好或更差。
为我服务:
.factory('Messages', function($firebaseArray, FBURL, $window) {
var messagesRef = new $window.Firebase(FBURL + '/messages');
return $firebaseArray(messagesRef);
})
.factory('Chatroom', function($firebaseArray, FBURL, $window) {
var chatroomRef = new $window.Firebase(FBURL + '/chatroom');
return $firebaseArray(chatroomRef);
})
然后在我的控制器中:
$scope.messages = Messages;
$scope.chatroom = Chatroom;
$scope.addMessage = function(message) {
$scope.messages.$add({
text: message.text,
userName: message.userName
});
$scope.chatroom.$add({
text: message.text,
userName: message.userName,
});
message.text="";
}
所以现在我在 ng-click 上将文本和用户名添加到两个子节点。如果我想将它添加到更多的子节点,比如 profile 和其他任何可能的节点,我可以继续放入引用不同节点的 $add 吗?或者这是不好的做法?提前谢谢你。
将相同的信息添加到 Firebase 数据库中的多个位置称为扇出,这是一种常见的做法。因此,虽然这取决于您的确切需求,但从定义上讲,复制数据并不是坏事。看到这个 blog post about denormalization on the Firebase site.
您可能要考虑使用单个多位置 update()
语句而不是两个单独的 $add()
调用。请参阅此问题的示例:Firebase: How do I update multiple resources atomically? and this blog post on the Firebase web site.