İkincisinin ilk seçimdeki seçime bağlı olduğu iki açılan alanım var.AngularJS ng-repeat ile bağımlı açılan menü
İlk aşağı açılan veri bir veri kümesinden gelir. Bir hesap ng-repeat="option in acctList"
ile ilişkili sayıyı listeler.
Farklı bir veri kümesine gitmek, eşleşen hesap numaralarını bulmak ve sonra bu hesapla ilişkili Müşterileri göstermek istiyorum. İlk açılan hiçbir şey seçilmediğinde ikinci açılan menüde hiçbir şey gösterilmemelidir. Filter ng-options from ng-options selection Ama açıklanmıştır: SO cevap
angular.module("app", [])
.controller("MainCtrl", function($scope) {
$scope.test = "This is a test";
$scope.defnum = 1;
$scope.acct_info = [
{
"Req": "MUST",
"DefCom": "1"
},
{
"Req": "NoMUST",
"DefCom": "5"
},
{
"Req": "MUST",
"DefCom": "4"
},
{
"Req": "MUST",
"DefCom": "7"
}
];
$scope.cust_info = [
{
"Customer": "1",
"Com": "1"
},
{
"Customer": "2",
"Com": "1"
},
{
"Customer": "3",
"Com": "4"
},
{
"Customer": "4",
"DefCom": "4"
},
{
"Customer": "5",
"DefCom": "7"
},
{
"Customer": "6",
"DefCom": "7"
},
{
"Customer": "7",
"DefCom": "7"
}
];
});
Bu dayanarak ikinci filtrelemeye çalışmak için ng-repeat="option in cust_info | filter:{ Com : filter.DefCom }"
ekledi: Burada
http://plnkr.co/edit/jDitkge1rx6GJzkdElJO?p=preview benim denetleyicisi: İşte
iki damla çıkışlar ile benim plunker olduğunu çalışmıyor. Bununla birlikte, bu eğiticiye bakarak bir bıçak taktım: http://kenhowardpdx.com/blog/2015/05/angular-ngrepeat-and-ngoptions-comparison/Bununla birlikte, gördüğüm ve tavsiye ettiğim $ watch'ı kullanıyor ve her senaryo için idealden az olan bir if döngüsü yazması gerekiyordu.
ng değişimini kullanmayı denedim, ancak filter
veya track by
gibi daha kolay bir yol olması gerektiğini düşünüyorum. Ayrıca ng-tekrardan ng-seçeneğine geçmem gerekirse merak ediyorum. Bunu yapmanın kolay bir yolu hakkında herkesin bilgisi var mı?
Kodunuz çalışır, ancak orijinal Varsayılan seçeneği korumaz:
Sana bir Plunker bu. Varsayılan olarak nasıl ekleneceğini biliyor musunuz? – jenryb
Veri işleme, kontrol cihazınızda yapılmalıdır. Başlangıçta şöyle bir şey yapabilirsiniz: var original_defcom = $ scope.defcom; var original_com = $ scope.com; –
Evet, denetleyicide var, ancak ng-options kullanarak nasıl başvuruda bulunabilirim? – jenryb