将对象添加到为表单定义的变量

时间:2017-06-23 13:43:59

标签: javascript angularjs arrays object

我有一个表单,它使用由多个字段和数组组成的$scope.booking变量,全部从HTML加载。 我需要从javascript添加一个对象数组,每次添加一个对象。 我试过

$scope.booking.newExternalUsers[$scope.count]= $scope.user.newExternalUser;

$scope.booking.newExternalUsers.push=$scope.user.newExternalUser;

但我收到了Cannot set property '0' of undefinedCannot set property of undefined,这是正确的,因为我只实例化了$scope.booking={} 也许是一个愚蠢的问题,但我几乎是新的angularjs,我怎么能添加$scope.user.newExternalUser一个pertime(对于每个按钮事件)? 感谢

4 个答案:

答案 0 :(得分:2)

您应该先设置数组,然后再为其设置值。

像这样:



$scope.booking = {};

$scope.booking.newExternalUsers = [];






$scope.booking = {
    newExternalUsers: []
};




,然后

您可以根据需要添加项目,如下所示:

$scope.booking.newExternalUsers[$scope.count]= $scope.user.newExternalUser;

或使用Array.prototype.push()

$scope.booking.newExternalUsers.push($scope.user.newExternalUser);

答案 1 :(得分:1)

首先在newExternalUsers数组中首先定义属性booking

$scope.booking={
  'newExternalUsers' : []
}

$scope.booking.newExternalUsers=[]

然后将项目推送到booking数组

$scope.booking.newExternalUsers.push($scope.user.newExternalUser);

答案 2 :(得分:0)

您必须实例化$scope.booking.newExternalUsers=[]

答案 3 :(得分:0)

我假设你有一个控制器。在那个控制器中你可以拥有:

$onInit() {
  this.booking = { newExternaUsers: [] };
}

然后在控制器启动时启动一次。