第一次尝试使用firebase。在这里完成整个工作: http://plnkr.co/3WIrBn
var app = angular.module('myApp',['firebase']);
app.factory('chatMessages',["$firebaseArray",function($firebaseArray){
var ref = new Firebase('https://scanapp.firebaseIO.com/tut');
return $firebaseArray(ref);
}]);
app.controller('MyController'['$scope','chatMessages',function($scope,chatMessages){
$scope.test = 'hello world';
$scope.user = "anonymouse";
$scope.messages = chatMessages;
$scope.addMessage = function(){
$scope.messages.$add({
from: $scope.user,
content: $scope.message
});
$scope.message = '';
};
}]);
我尝试在他们的网站上关注他们的教程,做了他们的快速入门以及彻底阅读文档,但我不断收到上述错误:
“错误:密钥内容未定义。无法在JSON中传递未定义。请改用null。”
我可以在上面的插件中使用它,所以我理解这些概念。然后我从plunk中复制了相同的代码,CDN链接到我的项目,同样的错误。我使用离子框架为基于Web的应用程序。 Angular和一切仍然正常工作,我只是在尝试按“添加”按钮运行该函数时收到错误。
更新:它肯定与输入有关。如果我将“from”和“content”键和字段设置为字符串而不是绑定到$ scope,它可以工作:
$scope.addMessage = function(){
$scope.messages.$add({
from: 'test',
content: 'stuff'
});
$scope.message = '';
};
但显然除了一遍又一遍地发送相同的数据之外没有用。
答案 0 :(得分:0)
表格中有$ scope.messages。表单创建一个新范围。删除表单并使用以下内容替换您的按钮:<button ng-click="addMessage()">Add</button>
这不会创建新范围,您的消息将成功添加到您的firebase。
至少它对我有用。
答案 1 :(得分:0)
将模型添加到函数
public static signup(req: express.Request, res: express.Response) {
UserModel.findOne({ email: req.body.email }).exec()
.then(existingUser => {
if(existingUser) {
return Promise.resolve({
user: existing,
existing: true
});
}
return UserModel.create({
firstName: req.body.firstName,
lastName: req.body.lastName,
email: req.body.email,
password: req.body.password
}).then((user) => {
return Promise.resolve({
existing: false,
user: user
});
});
})
.then(response => {
if (response.existing) {
return res.send({ message: `Email ${response.user.email} is in use` });
} else return res.send({ token: AuthUtils.createJWT(response.user)});
})
.catch(err => {
console.log(err);
});
}
并在您的表单上
$scope.addMessage = function(user,message) {
$scope.messages.$add({
user,
body: message
});
//RESET MESSAGE
$scope.msg = "";
}
祝你好运。