为什么我的 AngularFire push() 不工作?
Why is my AngularFire push( ) not working?
我正在尝试通过 运行 通过典型的待办事项教程学习 Angular 使用 Firebase,但我正在修改应用程序。我实际上是在创建 'Users'.
而不是待办事项列表
Firebase 设置正确,从 Firebase 中提取对象数据也能正常工作,我可以通过 ng-repeat 看到所有内容按预期填充。
但我正在尝试 'add a new member' 使用 .push() 方法,但收到错误消息。请看:
这是我上传到 Firebase 的 JSON 数据的示例(只有一个用户)
{
"members": {
"-JWT5y43YFy1mGirVVS2": {
"date": 1410328158691,
"firstname": "Michael",
"lastname": "Jordan",
"project": "sample project description",
"image": "http://telehealth.org/wp-content/images/user-placeholder.jpg",
"upcoming": "PTO on Thursday",
"status": {
"color": "red",
"contact": {
"email": "test@email.com",
"yahoo": "yahooIM"
},
"projects": {
"projectone": "project one",
"projecttwo": "project two",
"projectthree": "project three"
}
}
}
}
}
这是我的 .html 代码
<h1 id="teamTitle">Team Members</h1>
<div class="addMember">
<p>add member</p>
<form class="formmember"
name="memberform"
ng-submit="addMember()"
novalidate>
<div class="inputwrapper">
<input type="text" name="firstname" placeholder"First Name" ng-required="true">
<button type="submit" class="btn"
ng-disabled="memberform.$invalid">Add</button>
</div>
</form>
</div>
<ul class="cbp-rfgrid" ng-repeat="member in members">
<li class="{{member.status.color}}">
<img src="{{member.image}}">
<div>
<h3>{{member.firstname}}</h3>
<button>View</button>
</div>
</li>
</ul>
这是我的 Controller.js
myApp.controller('MembersController', function($scope, $firebase){
var ref = new Firebase('https://scrumcheck.firebaseio.com/members');
var members = $firebase(ref);
$scope.members = members.$asObject();
$scope.addMember = function(){
members.$push({
firstname: $scope.firstname,
date: Firebase.ServerValue.TIMESTAMP
});
}
});
控制台日志显示此错误:
Error: Firebase.set failed: First argument contains undefined in property 'firstname'
我希望通过推送到 Members,一个只有名字键的对象,它可以让我这样做。我是否只允许 push() 整个对象,其中包含所有键值?
谢谢!
检查您的 $scope.firstname 模型,这就是问题所在。确保它不是空值并正确定义。
我正在尝试通过 运行 通过典型的待办事项教程学习 Angular 使用 Firebase,但我正在修改应用程序。我实际上是在创建 'Users'.
而不是待办事项列表Firebase 设置正确,从 Firebase 中提取对象数据也能正常工作,我可以通过 ng-repeat 看到所有内容按预期填充。
但我正在尝试 'add a new member' 使用 .push() 方法,但收到错误消息。请看:
这是我上传到 Firebase 的 JSON 数据的示例(只有一个用户)
{
"members": {
"-JWT5y43YFy1mGirVVS2": {
"date": 1410328158691,
"firstname": "Michael",
"lastname": "Jordan",
"project": "sample project description",
"image": "http://telehealth.org/wp-content/images/user-placeholder.jpg",
"upcoming": "PTO on Thursday",
"status": {
"color": "red",
"contact": {
"email": "test@email.com",
"yahoo": "yahooIM"
},
"projects": {
"projectone": "project one",
"projecttwo": "project two",
"projectthree": "project three"
}
}
}
}
}
这是我的 .html 代码
<h1 id="teamTitle">Team Members</h1>
<div class="addMember">
<p>add member</p>
<form class="formmember"
name="memberform"
ng-submit="addMember()"
novalidate>
<div class="inputwrapper">
<input type="text" name="firstname" placeholder"First Name" ng-required="true">
<button type="submit" class="btn"
ng-disabled="memberform.$invalid">Add</button>
</div>
</form>
</div>
<ul class="cbp-rfgrid" ng-repeat="member in members">
<li class="{{member.status.color}}">
<img src="{{member.image}}">
<div>
<h3>{{member.firstname}}</h3>
<button>View</button>
</div>
</li>
</ul>
这是我的 Controller.js
myApp.controller('MembersController', function($scope, $firebase){
var ref = new Firebase('https://scrumcheck.firebaseio.com/members');
var members = $firebase(ref);
$scope.members = members.$asObject();
$scope.addMember = function(){
members.$push({
firstname: $scope.firstname,
date: Firebase.ServerValue.TIMESTAMP
});
}
});
控制台日志显示此错误:
Error: Firebase.set failed: First argument contains undefined in property 'firstname'
我希望通过推送到 Members,一个只有名字键的对象,它可以让我这样做。我是否只允许 push() 整个对象,其中包含所有键值?
谢谢!
检查您的 $scope.firstname 模型,这就是问题所在。确保它不是空值并正确定义。