First, I would like to show all id named "main rows and hide all id named "review" rows.
Second, when I click on one "main row, I would like to show one "review" row under this "main row.
Third step, And then when I click again on another "main row, one "review" row will be shown under this "main row that I clicked, and the first "review" row should be hidden.
In conclusion, I will show only one "review" row depending on the "main row that I clicked, and hide all other "review" rows to user.
<tbody ng-repeat="(id,product) in products" ng-controller="ProductMainCtrl as main">
<tr id="main" ng-click="parseProductId(product.product_id)">
<td>{{product.product_id}}</td>
<td>{{product.name}}</td>
<td>{{product.quantity}}</td>
<td>{{order.currency_code}} {{product.unit_price}}</td>
<td>{{order.currency_code}} {{product.unit_discount}}</td>
<td>{{order.currency_code}} {{product.price}}</td>
<td id="arrow"><a>Write A Review</a></td>
</tr>
<tr id="review">
<td colspan="7">
<span ng-include="'views/product/rating_main.html'"></span>
</td>
</tr>
</tbody>
Could I get some ideas for that with angular?
You can add an ng-show to your review row and judge which to show by which row your click with $index like:
<tbody ....>
...
<tr id="review" ng-show'isShow == $index'>
<td colspan="7">
<span ng-include="'views/product/rating_main.html'"></span>
</td>
</tr>
...
</tbody>
And add a click function to change isShow number:
...
<tr id="main" ng-click="parseProductId(product.product_id);changeShow($index)">
...
Then define changeShow function in controller:
$scope.changeShow = function(index){
$scope.isShow = index;
}
Got it.
A sample here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With