2013-06-02 11 views
7

私は日付ピッカーウィジェットを持っています、そして、私は、選択された日付をコントローラに渡したいと思います。jqueryからコントローラ変数を更新するには?

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

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

「ev.date」をコントローラに送信するにはどうすればいいですか?

コントローラ変数に影響を与えたいので、この変更はディレクティブによって取り上げられ、domはディレクティブで変更されます。あなたはこのような何か行うことができます

+0

あなたは、角イベントバスを使用して試してみて、イベントを発生することができます。 –

+0

これは私には何も教えてくれません:(私は昨日anglejsで始まったばかりです)コントローラの変数にデータを送る方法の例を投稿できますか? – LucasSeveryn

答えて

9

$('#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); 
    }); 
}); 

参照:http://docs.angularjs.org/api/angular.element

+0

コントローラに 'updateDateFunction'定義を作成しました:' $ scope.updateDateFunction = function残念ながら、あなたのコードを使用しても動作せず、次のエラーが発生します: 'Object [objectオブジェクト]にはメソッドがありません 'updateDateFunction''関数のスペルは間違っていません(日付){ $ scope.pickedDate = date; } 。 – LucasSeveryn

+0

あなたはコントローラではなく$ scopeに関数を置きます(普通です、構造に合わせてコードを更新します) – joakimbl

+0

ありがとう – LucasSeveryn

関連する問題