2017-01-12 3 views
0

私は、関数を呼び出すHTMLボタンのクリックから、未知数のパラメータでオブジェクトを構築しようとしているAngular2プロジェクトを持っています。下記に示すように、この関数は、パラメータの数は不明を受け入れるために、残りのパラメータを使用している:HTML関数からMultipe Restパラメータを渡すTypeScript関数をAngular2で呼び出す

この関数は以下のようにHTMLボタンクラスから呼び出された
addArguments(...args: any[]) { 
    for (var i = 0, arg; arg = args[i]; i++) { 
     console.log("add values args:", ...arg); 
    } 
} 

<button type="submit" class="btn" (click)="addArguments(6, 'Argument1', 'Argument2')"> 
    Add 
</button> 

問題があり、私はこのコードを実行し、コンソールの出力はadd values args: 6です。

「Argument1」と「Argument2」が追加されていない理由がわかりません。

+0

私はあなたがループのためにそれを行うには何を意味するのかわかりませんが、ここでの作業plunkerですします。https:?//plnkr.co/edit/mj1xNPJU1rwFQVZHZIaM P =プレビュー – echonax

+0

が見つかり次の関数呼び出しでargsとargsの間で問題が渡っていました。 ... argsは、分離されたパラメータを受け入れている別の関数に引き続き渡すために使わなければなりません。 –

答えて

1

forループを正しく構築していません。

は次のようになります。

addArguments(...args: any[]){ 
    for (var i = 0, i < args.length; i++) { 
     console.log("arg:", args[i]); 
    } 

    console.log("args:", args); // [6, "Argument1", "Argument2"] 
} 
+0

構成が間違っていません。これは、ループ内の引数と引数を割り当てます。問題は... argsの代わりにargsが渡されていることがわかりました。 –

関連する問題