我正在开发angularjs应用程序。我正在迭代响应并显示在表中,当用户点击表行信息时,我将json值传递给java脚本,我将进一步处理并显示信息。
<tr ng-repeat="info in responseData">
<td>
{{info.id}}</td>
<td>
<a href="javascript:void(0)"
ng-click="showDetails(x.product1Data)">
product1 Data</a>
</td>
<td style="width:15%;text-align: center;">
<a href="javascript:void(0)"
ng-click="showDetails(x.product2Data)">
product2 Data </a>
</td>
<td style="width:15%;text-align: center;">
<a href="javascript:void(0)"
ng-click="showDetails(x.product3Data)">
product3 Data</a>
</td>
<td>
<a href="javascript:void(0)"
ng-click="showDetails(..)">Show All Product Data </a>
</td>
</tr>
在上面的html代码中,当用户点击显示所有产品数据时,我想将x.product1Data,x.product2Data,x.product3Data
值传递给showDetails(..)。当用户点击显示所有产品数据
js code:
$scope.showDetails = function(productInfo){
//productInfo contains the product information
agularjs.forEach(productInfo,function(value,key){
}
}
答案 0 :(得分:1)
您可以创建一个名为showDetailSet()
的函数,该函数将数组作为参数。它可以做类似的事情(你必须要明确它的范围):
function showDetailSet(products) {
products.forEach(p => showDetails(p))
}
然后你会把它称为ng-click="showDetailSet([x.product1Data, x.product2Data, x.product3Data])"
答案 1 :(得分:0)
您可以直接致电所有showDetail
:
ng-click="showDetails(x.product1Data); showDetails(x.product2Data); showDetails(x.product3Data);">
你也可以像传统函数一样传递多个参数,但你必须为此重构showDetails
。
答案 2 :(得分:0)
根据您的Json数组的格式,您可以推送连续变量,例如
showDetails(x.product1Data.concat(x.product2Data.concat(x.product3Data)));
答案 3 :(得分:0)
通常,参数可以通过以下代码发送,
showDetails(x.product1Data,x.product2Data,product3Data)
不知道为什么这不能解决您的问题,如果它不起作用,请按照下面的说法进行操作,
只需通过info
,即可获得productData
函数中的所有showDetails
<tr ng-repeat="info in responseData">
<td>
{{info.id}}</td>
<td>
<a href="javascript:void(0)"
ng-click="showDetails(info.product1Data,$index)">
product1 Data</a>
</td>
<td style="width:15%;text-align: center;">
<a href="javascript:void(0)"
ng-click="showDetails(info.product2Data,$index)">
product2 Data </a>
</td>
<td style="width:15%;text-align: center;">
<a href="javascript:void(0)"
ng-click="showDetails(info.product3Data,$index)">
product3 Data</a>
</td>
<td>
<a href="javascript:void(0)"
ng-click="showDetails(info,-1)">Show All Product Data </a>
</td>
</tr>
并在控制器中
$scope.showDetails = function(productInfo,index){
if(index==-1)
{
// do your stuff for show all details
}
else{
//productInfo contains the product information
agularjs.forEach(productInfo,function(value,key){
}
}
}