Здесь используется AngularJS.
Я работаю над пользовательским интерфейсом, в котором есть раскрывающийся список.В зависимости от того, что выбрал пользователь, я показываю пользователю две вкладки.
Данные каждой вкладки возвращаются службой, которая просто возвращает массив данных (строка).
Против каждого возвращаемого строкового значенияЯ показываю кнопку против этого.При нажатии кнопки открывается модальное всплывающее окно, в котором пользователь может выбрать некоторые данные.Когда они закрывают модальный режим, я возвращаю данные обратно в контроллер.
Нормальный поток привязки данных к вкладке, открытия модального режима и возврата данных из модального режима работает нормально.
Я не могу понять или придумать, как связать возвращаемые данные с кнопкой или строкой, из которой они были нажаты
Например, как показано ниже:
Tab1
String1 - Button1
String2 - Button2
String3 - Button3
Если я открою модальное окно, нажав кнопку 1, как мне узнать, что кнопка 1 нажата, и связать обратно данные, которые были возвращены из модального режима.
Некоторые соответствующие коды приведены ниже:
<div id="params" ng-if="type.selected">
<tabset class="tabbable-line">
<tab heading="Sets" ng-if="sets" active="tab.set">
<div class="form-group m-grid-col-md-8 param" style="margin-top:5px"
ng-repeat="set in sets" >
<label class="control-label col-md-3 param-label">{{set}}
</label>
<button ng-click="openModal()" class="btn btn-info btn-sm">
Select
</button>
</div>
</tab>
<tab heading="Tables" ng-if="tables" active="tab.table">
<div class="form-group m-grid-col-md-8 param"
ng-repeat="table in tables">
<label class="control-label col-md-3 param-label">{{table}}
</label>
<button ng-click="openModal()" class="btn btn-info btn-sm">
Select
</button>
</div>
</tab>
</tabset>
</div>
Контроллер:
$scope.onChangeType = function (selectedValue) {
$scope.getData(selectedValue);
};
$scope.getData = function (selectedValue) {
//Commenting out the service part for now and hardcoding array
// service.getData(selectedValue).then(function (res) {
$scope.sets = ['Set1', 'Set2', 'Set3'];
$scope.tables = ['Table1', 'Table2'];
// });
};
$scope.openModal = function () {
myFactory.defineModal().then(function (response) {
//how to bind data from response
});
};
Я создал plnkr для этого образца как: http://plnkr.co/edit/vqtQsJP1dqGnRA6s?preview
- Отредактировано -
<div class="form-group m-grid-col-md-8 param" ng-repeat="table in tables">
<label class="control-label col-md-3 param-label">{{table}}
</label>
<button ng-click="openModal(table)" class="btn btn-info btn-sm">
Select
</button>
<span>
{{table.utype}}
</span>
</div>