2013-04-04 23 views
22

Angularjs kullanarak bir modele bağlı bir seçim kutusu oluşturdum. Seçme kutusu seçenekleri doğru yüklenir, ancak herhangi bir seçenek belirlenir seçilmez tüm seçenekler seçim kutusundan kaybolur. Bunun gerçekleşmesinin nedeni nedir ve seçeneklerimin kaybolmasını nasıl engellerim?AngularJS seçme kutusu seçenekleri bir öğe seçildiğinde kaybolur

sorunu gösteren

Plunker linki: http://plnkr.co/edit/DolBIN

HTML

<html xmlns="http://www.w3.org/1999/xhtml" ng-app> 
    <head> 
     <title>Angular Test Prjoect - Home</title> 
     <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"></script> 
     <script type="text/javascript" src="Clinic.js"></script> 
    </head> 
    <body> 
     <div ng-controller="ClinicCtrl"> 
      <select ng-options="item as item.start + '-' + item.end + ':' + item.patient.name for item in appointments" ng-model="appointments"> 
      </select> 
     </div> 
    </body> 
</html> 

JavaScript

function ClinicCtrl($scope) { 
    $scope.appointments = [ 
     { start: "900", end: "930", provider: "1", patient: {name:"Allen",dob:"8/12/1977"} }, 
     { start: "1000", end: "1045", provider: "1", patient: { name: "Allen", dob: "8/12/1971"} }, 
     { start: "1030", end: "1100", provider: "2", patient: { name: "David", dob: "11/22/1973"} }, 
     { start: "1100", end: "1145", provider: "2", patient: { name: "Francine", dob: "3/18/1987"} }, 
     { start: "1230", end: "1530", provider: "3", patient: { name: "George", dob: "4/5/1997"} }, 
     { start: "1300", end: "1500", provider: "3", patient: { name: "Kirkman", dob: "6/28/1970"} } 
    ]; 
} 
+1

+1

<div ng-controller="ClinicCtrl"> <select ng-options="item as item.start + '-' + item.end + ':' + item.patient.name for item in appointments" ng-model="selectedAppointment" ></select> {{selectedAppointment}} <!-- log out the value just to show it's working --> </div> 
, ben böyle bir şey yapabileceğini bilmiyordu:

İşte güncellenmiş plunker var 'item.start + '- Seçim listesi etiketleri için '+ item.end +': '+ item.patient.name'. –

cevap

44

Sorun select elemana ng-model bir en kısa sürede $scope.appointments dizi üzerine yazar olmasıdır öğe seçildi. ng-model değeriniz için farklı bir kapsam özelliğini kullanın. http://plnkr.co/edit/EAExby

Şablonunuza değişiklikler olacaktır::

+1

Teşekkür ederim @Noah .. En sonunda senin çözümünü buldum acemi :) – AnNaMaLaI

+0

Teşekkür ederim! Benzer bir durumla karşılaştım ve nedenini belirttikten sonra ng-modelini '' kaldırarak giderdim. –

+0

Bunun olduğuna inanamıyorum. Çok teşekkür ederim! – cgf

İlgili konular