2015-01-13 24 views
8

Çok basit bir sorun, ancakangularjs ng-tekrarı içindeki ng-opsiyon

ben var ng tekrarı, o yinelerler modeli videoyu nasıl çözeceğini emin değilim.

modeli Seçili bir değeri vardır ve ben açılır listeden söz konusu görmek istiyorum:

:

$scope.model = { 
       videos:[ 
        {id:1,name:"VIDEO_ONE"}, 
        {id:2,name:"VIDEO_TWO"} 
       ] 
      } 

bu VideoList öğedir: Bu Video modelidir

<div data-ng-repeat="singleVideo in model.videos"> 
    {{singleVideo}}<select data-ng-model="singleVideo.name" ng-options="item.name for item in videoList"></select> 
</div> 

$scope.videoList = [ 
       {id:1,name:"VIDEO_ONE"}, 
       {id:2,name:"VIDEO_TWO"}, 
       {id:3,name:"VIDEO_Three"} 
      ]; 

sadece ilk aşağı açılır değerin VIDEO_ONEolarak ayarlanmasını bekliyorumikinci açılır menü değeri VIDEO_TWO olarak ayarlanacak.

Şu anda açılan menü boş.

Bunu nasıl başarabilirim?

This is the expected result, currently i'm getting the dropdown boxes empty

cevap

7

sadece item.id as item.name for item in videoList ile ng-seçenekleri için bir değer ayarlamanız gerekir. aşağıya bakın.

(ben daha uygun olduğunu düşünüyorum çünkü ben, değer olarak kimliği ayarlayın. Yerde de id. Ya Yardımcısı verca göre sizin name özelliğini güncellemeniz gerekir. Seçiminizi.)

angular.module('testapp', []) 
 
.controller('appCtrl', function($scope) { 
 
    $scope.model = { 
 
    videos:[ 
 
     {id:1,name:"VIDEO_ONE"}, 
 
     {id:2,name:"VIDEO_TWO"} 
 
    ] 
 
    }; 
 
    
 
    $scope.videoList = [ 
 
    {id:1,name:"VIDEO_ONE"}, 
 
    {id:2,name:"VIDEO_TWO"}, 
 
    {id:3,name:"VIDEO_Three"} 
 
    ]; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<body ng-app="testapp"> 
 
    <div ng-controller="appCtrl"> 
 
    <div ng-repeat="singleVideo in model.videos"> 
 
     {{singleVideo.name}} 
 
     <select ng-model="singleVideo.id" ng-options="item.id as item.name for item in videoList" ng-selected="true"></select> 
 
    </div> 
 
    </div> 
 
</body>

+0

Yey !! işe yaradı, bir değerin –

+0

kabul edildiğine işaret edeceğim, sadece değeri değiştirdiğimde ve isim değişmediğinde, neden herhangi bir fikrin var mı? "videos": [{"id": 1, "name": "VIDEO_ONE"}, {"id": 2, "name": "VIDEO_TWO"}] –

+0

belirtildiği gibi, sadece id id özniteliğini günceller . 'name' özniteliğini bıraktım çünkü' videoList 'ismini alırsanız gereksizdir. – zwacky

1
<div data-ng-repeat="singleVideo in model.videos"> 
    {{singleVideo}}<select data-ng-model="singleVideo.name" ng-options="item.name as item.name for item in videoList"></select> 
</div>