2016-04-08 17 views
0

İkincisinin ilk seçime bağımlı olduğu iki aşağı açılan alanım var.Köşeli Açılır kutular aşağıya doğru ilk aşağı açılır

İlk aşağı açılan veri bir veri kümesinden gelir. ng-repeat="option in acctList": 1, 4 ve 7 ile ilişkili numarayı listeler. Farklı bir veri kümesine gitmek, eşleşen hesap numaralarını bulmak ve daha sonra Müşteriye o hesapla ilgili olanları göstermek istiyorum. (hesap 1 müşteri 1-2, hesap 4 müşterileri 3-4, hesap 7 müşterileri 5-7). İ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. ng-change 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ı?

cevap

0

ikinci <option> etiketinde Kullanım ng-if, öyle, sen

<select> 
    <option ng-selected="defnum == option.DefCom" ng-repeat="option in acct_info | filter:{Req:'MUST'}:true"> 
     {{ option.DefCom }} 
    </option> 

    </select> 
    <select> 
    <option ng-if="option.DefCom" ng-selected="" ng-repeat="option in cust_info"> 
     {{ option.Customer}} 
    </option> 

    </select> 
+0

istersen Bu örnekte çalışmıyor olabilir. İlk açılır menüde "1" i seçtiğinizde, sadece 1 ve 2 seçeneklerini göstermelidir. "2" yi seçtiğinizde 3 ve 4 numaralı seçenekleri göstermelidir. – jenryb

İlgili konular