2017-10-28 94 views
1

我正在学习角4并试图制作一个简单的应用程序。使用矩阵内的函数中的数组4

但是,我卡在一个地方是在AppComponent。我有一个数组,当浏览器中输入文本点击添加按钮时,文本被添加到数组中。现在当我点击提交按钮时,我想在控制台中看到数组。

这里是我的appComponent代码:

items = []; 
    newItem= ""; 
    convertJSON= function(items){ 
     var arr= items; 
     console.log(arr); 
    } 

所以我在做什么这里是与另一个功能的帮助。

我正在填充阵列“项目”在按钮点击。现在当我点击另一个按钮时,我希望那些数组元素在convertJSON函数内部使用并显示在控制台中。

在JS,我们可以使用一个全球数组,但这里的时候,我做这样的“取消定义”是表示我的控制台了。

+1

您还应该向我们展示如何调用'convertJSON'方法。你在那里传递'items'作为参数吗? –

+0

雅吧。这就是我最后所缺少的。谢谢。该参数未通过 – UDGogs

回答

0

看起来像是遇到了问题shadowing instance variableitems与本地功能参数items。取决于你如何调用方法(使用参数或不使用)。

尝试将功能参数重命名为别的东西:

items = []; 

convertJSON = function(arr){ 
    console.log(arr); 
} 

或者,如果你没有这个参数传递给convertJSON所有,只是省略:

items = []; 

convertJSON = function(){ 
    console.log(items); 
} 
0

事实上,它肯定是由于在使用函数()时会丢失参数或变量阴影。在你的情况下,你应该使用一个类变量items = []并创建一个单独的函数convertJSON()。

items = []; 

addButton($event) { 
    this.items.push($event.value); 
} 

submit() { 
    convertJSON(this.items); 
} 

convertJSON(array) { 
    console.log(array); 
}