2017-06-23 9 views
0

私は$scope.bookingという変数を使用するフォームをいくつかのフィールドと配列から構成し、すべてHTMLからロードしました。 javascriptからオブジェクトの配列を追加し、1つのオブジェクトを時間ごとに追加する必要があります。 は私がフォームに定義された変数にオブジェクトを追加する

$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を受け、私はどのように、おそらく愚かな質問ですが、私はangularjsのほぼ新しいです唯一$scope.booking={} をインスタンス化しているので、それが正しいですか毎回$scope.user.newExternalUserを(ボタンイベントごとに)追加できますか? おかげ

答えて

1

まず

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

または

$scope.booking.newExternalUsers=[] 

newExternalUsersbookingの配列の最初のプロパティを定義するとinstantiaにあなたが持っているbooking配列

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

を使用して最初の宣言の作品のおかげ – luca

0

にアイテムをプッシュしますte $scope.booking.newExternalUsers=[]

+0

を、それが別のオブジェクトを作成します – luca

+0

@luca 'newExternalUsers'は、使用する前にまず配列として定義する必要があります。あなたの '$ scope.booking'オブジェクトに' newExternalUsers'プロパティが定義されていないので、 'undefined'エラーが発生します。 – Hoyen

0

コントローラがあると仮定します。そのコントローラーでは、次のように設定できます。

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

コントローラの起動時に1回起動されます。

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);

関連する問題