2016-04-12 55 views
0

İki açılırım var, biri diğerine bağımlı. Orijinal olarak ng-repeat kullanarak kodum vardı ama ng-options kullanmak daha verimli olduğunu okudum. Ancak, geçiş yaparken, artık varsayılan olarak ng seçilemiyorum.ng-options Açısal Düşüş için Varsayılan Değer

ng seçeneklerinde varsayılan seçeneği ayarlamak için farklı yöntemlere baktım, ancak özelleştirilmiş bir seçenek için <option value="">Select Something Here</option> ya da doğrudan veri kümesinden seçerek kullanıyorlar. Ancak benim değim değişiyor.

 <select ng-model="defcom" 
     ng-options="opt as opt.DefCom for opt in acct_info | filter:{Req:'MUST'}:true" > 
     </select> 
     <p>Hello {{ defcom.AcctName }}</p> 

ve benim verilerinin bir örneğini:

$scope.acct_info = [ 
     { 
     "Req": "MUST", 
     "DefCom": "1", 
     "AcctName": "ThisName" 
     }, 
     { 
     "Req": "NoMUST", 
     "DefCom": "5", 
     "AcctName": "ThisName2" 
     }, 
     { 
     "Req": "MUST", 
     "DefCom": "4", 
     "AcctName": "ThisName3" 
     }, 
     { 
     "Req": "MUST", 
     "DefCom": "7", 
     "AcctName": "ThisName4" 
     } 
    ]; 

http://plnkr.co/edit/VwqrsR38GOFubW8i46FJ?p=preview

ben şöyle denetleyicisi vardır: İşte

ng-seçeneğini kullanarak varsayılan eksik bir plunker olduğunu

Görüldüğü gibi ng-options="opt.DefCom as opt.DefCom for opt in acct_info | filter:{Req:'MUST'}:true" kullanıldığında çalışıyordum ere: http://plnkr.co/edit/vyJuZDM7OvE5knsfHln7?p=preview ancak ilişkili bağlantıları almak için değiştirdim. Birisi ng-options çalışmalarına daha fazla içgörüye sahipse, bu çok yardımcı olacaktır. ng-model="defcom" bağlı

cevap

1

ng-options="opt as opt.DefCom for opt in acct_info | filter:{Req:'MUST'}:true"

değeri bütün bir nesne opt olacaktır. Bir varsayılan ayarlamak için, tüm nesneyi $scope.defcom'a atamanız gerekir. Örneğin. Mevcut verilerle $scope.defCom = $scope.acct_info[2];

, bu her zaman veri böylece teker hesaplarını veya müşteri elde bazı işlevler yazmak isteyebilirsiniz ne olacağını bilmiyor olabilir, varsayılan Tabii

{ 
    "Req": "MUST", 
    "DefCom": "4", 
    "AcctName": "ThisName3" 
} 

yapacak özelliklerinin

$scope.defcom = getAccountByDefCom("4"); 
$scope.defcust = getCustomer("3"); 

function getAccountByDefCom(defcom) { 
    for (var i = 0; i < $scope.acct_info.length; i++) { 
    if ($scope.acct_info[i].DefCom === defcom) { 
     return $scope.acct_info[i]; 
    } 
    } 
} 

function getCustomer(number) { 
    for (var i = 0; i < $scope.cust_info.length; i++) { 
    if ($scope.cust_info[i].Customer === number) { 
     return $scope.cust_info[i]; 
    } 
    } 
} 

Example Plunker

documentation ait bölüm

yardımcı olabilir Argümanlar bir göz olması