Javascript 无法设置子对象的未定义属性
当我尝试为父对象物理的子对象addressline_1赋值时,我得到一个“无法设置未定义的addressline_1属性”。如果有人能告诉我如何解决此问题,我将不胜感激。谢谢Javascript 无法设置子对象的未定义属性,javascript,angularjs,Javascript,Angularjs,当我尝试为父对象物理的子对象addressline_1赋值时,我得到一个“无法设置未定义的addressline_1属性”。如果有人能告诉我如何解决此问题,我将不胜感激。谢谢 $scope.editCompany = function(){ $scope.submitCompany =[{phone:[]}]; $scope.submitCompany[0].name = "Some Company"; $scope.submitCompany[0].email = "compan
$scope.editCompany = function(){
$scope.submitCompany =[{phone:[]}];
$scope.submitCompany[0].name = "Some Company";
$scope.submitCompany[0].email = "company@example.com";
$scope.submitCompany[0].is_active = "TRUE";
$scope.submitCompany[0].physical.addressline_1 = "77 Example rd";
}
我也尝试过以下方法,但没有成功
$scope.editCompany = function(){
$scope.submitCompany =[{phone:[]},{physical:{addressline_1:"",addressline_2:"",addressline_3:"",addressline_4:"",city:"", region:"",country:"", post_code:""}}];
$scope.submitCompany[0].name = "Some Company";
$scope.submitCompany[0].email = "company@example.com";
$scope.submitCompany[0].is_active = "TRUE";
$scope.submitCompany[0].physical.addressline_1 = "77 Example rd";
}
在尝试设置对象的属性之前,需要先创建物理对象:
$scope.editCompany = function(){
$scope.submitCompany =[{phone:[]}];
$scope.submitCompany[0].name = "Some Company";
$scope.submitCompany[0].email = "company@example.com";
$scope.submitCompany[0].is_active = "TRUE";
$scope.submitCompany[0].physical = {};
$scope.submitCompany[0].physical.addressline_1 = "77 Example rd";
};
或相同的更清晰语法:
$scope.editCompany = function () {
$scope.submitCompany = [{
phone: [],
name: "Some Company",
email: "company@example.com",
is_active: "TRUE",
physical: {
addressline_1: "77 Example rd"
}
}];
};
在设置属性之前,将对象分配给
物理
属性是正确的,但您将其放在$scope.submitCompany[1]。物理而不是$scope.submitCompany[0]。物理
将物理
属性与电话
属性放在同一对象中:
$scope.editCompany = function(){
$scope.submitCompany = [ { phone: [], physical: {} } ];
$scope.submitCompany[0].name = "Some Company";
$scope.submitCompany[0].email = "company@example.com";
$scope.submitCompany[0].is_active = "TRUE";
$scope.submitCompany[0].physical.addressline_1 = "77 Example rd";
}
只要找点零钱就行了
$scope.editCompany = function(){
$scope.submitCompany =[{phone:[]},{physical:{addressline_1:"",addressline_2:"",addressline_3:"",addressline_4:"",city:"", region:"",country:"", post_code:""}}];
....
$scope.submitCompany[1].physical.addressline_1 = "77 Example rd"; // instead $scope.submitCompany[0].physical.addressline_1
}