ng-repeat içinde kapsam belirleme konusunda sorun yaşıyorum. Zincirleme seçimleri oluşturmak istiyorum ve ayrı satırlarda ayrı olarak var olmak için her satırı ng-tekrarda tutmak istiyorum. Şu anda satırlardan herhangi birinde ilk seçimi değiştirdiğinizde, tüm satırlardaki ikinci seçimler değişecektir.ng-repeat içinde zincirleme seçimi
(Gerçek hayat örneği: Araba eklemek zorunda olduğum bir formum var, önce bir 'Make' seçin, 'Modelleri bir api'den çekin ve ikinci seçimde modelleri gösterin. Kullanıcılar ekleyebilmelidir. arabaların herhangi bir sayı)
HTML:.
<div ng-controller="MyCtrl">
<div ng-repeat="row in rows">
<select ng-options="option.value as option.title for option in options1" ng-model="row.select1" ng-change="updateSelect2(row.select1)"></select>
<select ng-options="option.value as option.title for option in options2" ng-model="row.select2"></select>
</div>
<a ng-click="addRow()">Add Row</a>
</div>
JS:
function MyCtrl($scope) {
$scope.rows = [{}];
$scope.options1 = [
{title: 'Option 1', value: '1'},
{title: 'Option 2', value: '2'},
{title: 'Option 3', value: '3'}
];
$scope.options2 = [];
$scope.updateSelect2 = function(val) {
if (val === '1') {
$scope.options2 = [
{title: 'A', value: 'A'},
{title: 'B', value: 'B'}
];
} else if (val === '2') {
$scope.options2 = [
{title: 'AA', value: 'AA'},
{title: 'BB', value: 'BB'}
];
} else {
$scope.options2 = [
{title: 'AAA', value: 'AAA'},
{title: 'BBB', value: 'BBB'}
];
}
};
$scope.addRow = function() {
$scope.rows.push({});
};
}
Ben ng-repeat en kapsamındaki bir değişkende seçenekleri saklamak için bir yol düşünüyordum ama bu işi mükemmel yapar! Teşekkürler! :) – orszaczky
Aslında daha iyi bir yol düşündüm. Bakın [here] (http://jsfiddle.net/g0zxedmz/) – yarons
Bunu paylaştığınız için teşekkürler! Bu, zaten mümkün olan tüm seçeneklere sahip olsaydı gerçekten çok güzel bir yol olurdu, ancak ilk seçime göre ikinci seçim için seçenekler almak için bir api sorgulamalıyım. (Ben sadece bu örneği karmaşıklaştırmak istemedim) - Seçenekler ... 2 bir dizidir ve bir ng-değiştirme işlevini kullanarak $ index'i temel alarak ... – orszaczky