У меня есть таблица HTML с некоторыми данными, поступающими из веб-службы, и я использую Angular, тогда у меня есть 3 переключателя для отображения 10, 20 и 30 записей из моего источника данных. 3 кнопки должны вызывать веб-сервис для каждого из них, веб-службы уже работают, но я не знаю, как сделать эти переключатели для отображения новых данных в таблице, структура этой таблицы не изменяется и потому, что Я использую Angular, я могу избежать обновления всей страницы.
Есть ли у кого-нибудь пример для этого?
Моя таблица находится в другом div с собственным контроллером, который отображает некоторые данные:
<div ng-controller="ctrlOne">
<table>
<tr ng-repeat="d in data">
<td>{{d.field1}}</td>
</tr>
</table>
</div>
В другом div у меня есть переключатели:
<div class="radio">
<label class="radio-inline"><input type="radio" name="top30">TY Top 30 Categories</label>
<label class="radio-inline"><input type="radio" name="top20">TY Top 20 Brands</label>
<label class="radio-inline"><input type="radio" name="top10">TY Top 10 Suppliers</label>
</div>
Пока нет контроллера.
Вы можете использовать группу радиостанций, чтобы выбрать такую модель данных, как это.
<div class="radio">
<label class="radio-inline"><input type="radio" ng-model="tableVal" value="data10">Show top 10</label>
<label class="radio-inline"><input type="radio" ng-model="tableVal" value="data20">Show top 20</label>
<label class="radio-inline"><input type="radio" ng-model="tableVal" value="data30">Show top 30</label>
</div>
<table ng-if="tableVal === 'data10'">
<tr ng-repeat="d in data10">
<td>{{d}}</td>
</tr>
</table>
<table ng-show="tableVal === 'data20'">
<tr ng-repeat="d in data20">
<td>{{d}}</td>
</tr>
</table>
<table ng-show="tableVal === 'data30'">
<tr ng-repeat="d in data30">
<td>{{d}}</td>
</tr>
</table>
Образец вашего набора данных в контроллере:
app.controller('MainCtrl', function($scope) {
$scope.tableVal = 'data10'
$scope.data10 = ['10-first','10-second','10-third','10-fourth'];
$scope.data20 = ['20-first','20-second','20-third','20-fourth'];
$scope.data30 = ['30-first','30-second','30-third','30-fourth'];
});