2013-06-02 37 views
7

Bir tarih seçici widget'ım var ve seçili tarihi denetleyiciye aktarmak istiyorum. Bu komut dosyası benim görünümüme sahip:Denetleyici değişkeni jquery'den nasıl güncellenir?

 <div id="datepicker"></div> 
     <script type="text/javascript"> 
     $('#datepicker').datepicker(); 
     $('#datepicker').datepicker() 
     .on('changeDate', function(ev){ 

      alert(ev.date); 
     }); 
     </script> 

Bu "ev.date" denetleyiciye nasıl gönderilir?

Denetleyici değişkenini etkilemesini istiyorum, bu nedenle bu değişiklik bir yönerge tarafından alınır ve direktifte dom değiştirilir.

+0

Sen açısal olay otobüsü kullanmayı deneyin ve bir olayı tetikleyebilir. –

+0

Bu bana hiçbir şey söylemiyor: (Sadece dün angularjs ile başladım. Denetleyicide bir değişkene nasıl veri gönderileceğine dair bir örnek gönderebilir misin? – LucasSeveryn

cevap

9

Böyle bir şey yapabilirsiniz:

$('#datepicker').datepicker() 
    .on('changeDate', function(ev){ 
    //get a hold of controller and scope 
    var element = angular.element($('#datepicker')); 
    var controller = element.controller(); 
    var scope = element.scope(); 

    //as this happends outside of angular you probably have to notify angular of the change by wrapping your function call in $apply 
    scope.$apply(function(){ 
     scope.updateDateFunction(ev.date); 
    }); 
}); 

See: http://docs.angularjs.org/api/angular.element

+0

Denetleyicide bir 'updateDateFunction 'tanımı oluşturdum:' $ scope.updateDateFunction = function (tarih) { $ scope.pickedDate = date; }; ve kodunuzu kullandığınız maalesef çalışmıyor ve şu hatayı veriyor: Nesne [object Object] 'updateDateFunction' yöntemine sahip değil. İşlev yanlış yazılmış değil – LucasSeveryn

+0

Fonksiyonu $ kapsamına koyarsınız, denetleyiciyi değil (normal olan, kodumu yapınıza uyacak şekilde güncelleyeceğim) – joakimbl

+0

Çok teşekkür ederim – LucasSeveryn