AngularFire 简单示例冻结 Chrome 和 Firefox
AngularFire simple example freezes Chrome and Firefox
我正在尝试使用 Angular 和 Firebase 实现一个简单的聊天示例。它在 Safari 上运行良好,但它会冻结 Chrome 和 Firefox(运行 在本地或远程基础上)。有没有人知道我的代码有什么问题?感谢您的帮助!
<html ng-app="ZzzzApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.js"></script>
<script src="https://www.gstatic.com/firebasejs/3.7.2/firebase.js"></script>
<script src="https://cdn.firebase.com/libs/angularfire/2.3.0/angularfire.min.js"></script>
<script type="text/javascript">
var app = angular.module('ZzzzApp',['firebase']);
app.controller("ChatController", function($scope, $firebaseArray){
var config = {
apiKey: "AIzaSyA8nk5dSF8HKUSQr_2H04hwTRZ2NWDwSOE",
authDomain: "chattest-9fe81.firebaseapp.com",
databaseURL: "https://chattest-9fe81.firebaseio.com",
storageBucket: "chattest-9fe81.appspot.com",
messagingSenderId: "353125975278"
};
firebase.initializeApp(config);
var ref = firebase.database().ref().child('12345');
$scope.messages = $firebaseArray(ref);
$scope.addMessage = function(){
$scope.messages.$add({direction: 'S', message: $scope.messageToSend});
$scope.messageToSend = '';
};
});
</script>
</head>
<body>
<div ng-controller="ChatController">
<div ng-repeat="message in messages">
<p>{{message.message}}</p>
</div>
<input type="text" class="form-control" ng-model='messageToSend'>
<button type="button" class="btn btn-default" ng-click='addMessage()'>Send</button>
</div>
</body>
不确定哪里出了问题 - 您的数据结构如何?
尝试像这样更改 addMessage 函数:
$scope.addMessage = function(){
$scope.messages.$add({direction: 'S', message: $scope.messageToSend})
.then(() => $scope.messageToSend = '')
};
只是为了确保您仅在 messageToSend 成功添加到 firebase 数组后清空它。您的控制台中有任何输出吗?
这似乎是 Firebase ^3.7.1 中的一个错误。有同样的问题并遇到另一个 。尝试指定 Firebase 版本:
dependencies: {
"firebase": "3.7.0",
"angularfire": "^2.3.0"
...
}
我正在尝试使用 Angular 和 Firebase 实现一个简单的聊天示例。它在 Safari 上运行良好,但它会冻结 Chrome 和 Firefox(运行 在本地或远程基础上)。有没有人知道我的代码有什么问题?感谢您的帮助!
<html ng-app="ZzzzApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.js"></script>
<script src="https://www.gstatic.com/firebasejs/3.7.2/firebase.js"></script>
<script src="https://cdn.firebase.com/libs/angularfire/2.3.0/angularfire.min.js"></script>
<script type="text/javascript">
var app = angular.module('ZzzzApp',['firebase']);
app.controller("ChatController", function($scope, $firebaseArray){
var config = {
apiKey: "AIzaSyA8nk5dSF8HKUSQr_2H04hwTRZ2NWDwSOE",
authDomain: "chattest-9fe81.firebaseapp.com",
databaseURL: "https://chattest-9fe81.firebaseio.com",
storageBucket: "chattest-9fe81.appspot.com",
messagingSenderId: "353125975278"
};
firebase.initializeApp(config);
var ref = firebase.database().ref().child('12345');
$scope.messages = $firebaseArray(ref);
$scope.addMessage = function(){
$scope.messages.$add({direction: 'S', message: $scope.messageToSend});
$scope.messageToSend = '';
};
});
</script>
</head>
<body>
<div ng-controller="ChatController">
<div ng-repeat="message in messages">
<p>{{message.message}}</p>
</div>
<input type="text" class="form-control" ng-model='messageToSend'>
<button type="button" class="btn btn-default" ng-click='addMessage()'>Send</button>
</div>
</body>
不确定哪里出了问题 - 您的数据结构如何?
尝试像这样更改 addMessage 函数:
$scope.addMessage = function(){
$scope.messages.$add({direction: 'S', message: $scope.messageToSend})
.then(() => $scope.messageToSend = '')
};
只是为了确保您仅在 messageToSend 成功添加到 firebase 数组后清空它。您的控制台中有任何输出吗?
这似乎是 Firebase ^3.7.1 中的一个错误。有同样的问题并遇到另一个
dependencies: {
"firebase": "3.7.0",
"angularfire": "^2.3.0"
...
}