0
尝试向Firebase中的某一行提交更新时,出现错误TypeError: Cannot set property 'songname' of null
。控制台错误是说它在编辑功能中与record.songname
发生。我可以添加,但不能编辑行。提交的类型错误提交
myApp.controller('ProductsCtrl', ['$scope', '$firebaseArray', function($scope, $firebaseArray, $http){
var myProducts = new Firebase('https://url-to-db.firebaseio.com/songs');
$scope.products = $firebaseArray(myProducts);
$scope.showForm = function(){
$scope.addFormShow = true;
$scope.editFormShow = false;
clearForm();
window.scrollTo(0, 0);
}
$scope.hideForm = function(){
$scope.addFormShow = false;
}
function clearForm(){
$scope.songname = '';
$scope.artist = '';
$scopt.tags = '';
}
$scope.addFormSubmit = function(){
$scope.products.$add({
songname:$scope.songname,
artist:$scope.artist,
tags:$scope.tags,
date:Date.now()
});
$('.messages').addClass('alert alert-success').slideDown().show().html('The song has been added').fadeOut(2000);
clearForm();
}
$scope.dateFormat = 'MM-dd-yy @ HH:mm:ss';
$scope.showProduct = function(product){
$scope.editFormShow = true;
$scope.addFormShow = false;
$scope.songname = product.songname;
$scope.artist = product.artist;
$scope.tags = product.tags;
$scope.date = product.date;
}
$scope.editFormSubmit = function(){
var id = $scope.id;
var record = $scope.products.$getRecord(id);
record.songname = $scope.songname;
record.artist = $scope.artist;
record.tags = $scope.tags;
$scope.products.$save(record);
$('.messages').addClass('alert alert-info').slideDown().show().html('The job has been edited').fadeOut(2000);
clearForm();
$('.edit-form').toggle();
}
}]);
我已经通过使用'var id = $ scope.id;'传递给getRecord()函数来提交编辑,这是错误显示的位置。 – Matt
我的意思是$ scope.id属性中的值本身没有被设置在任何地方。所以,当你说'var id = $ scope.id'时,它所做的只是'var id = undefined' – CodeWarrior