私はAngularにかなり慣れていないので、ちょっとした問題に遭遇しました。機能するこの単純な日付ピッカーディレクティブがあります
app.directive('datepicker', function() {
return {
require: 'ngModel',
link: function(scope, elem, attr, ngModel){
$(elem).datepicker({
onSelect: function(dateText){
scope.$apply(function(){
ngModel.$setViewValue(dateText);
});
}
});
}
}
});
そして、私がそれを呼び出すために使用するhtmlは
<input datepicker data-ng-model="day.date" readonly/>
datepicker によって呼び出される onSelect 関数を変更できるようにしたいと考えています。うまくいけば、このようなものです。
<input datepicker="myOnSelectMethod()" data-ng-model="day.date" readonly/>
次に、ディレクティブは次のようになります
app.directive('datepicker', function() {
return {
require: 'ngModel',
link: function(scope, elem, attr, ngModel){
if(myOnSelectMethod is defined){ //how do I access myOnSelectMethod here?
$(elem).datepicker({
onSelect: myOnSelectMethod();
});
}
else{ //proceed as before
$(elem).datepicker({
onSelect: function(dateText){
scope.$apply(function(){
ngModel.$setViewValue(dateText);
});
}
});
}
}
}
});
私の質問は、リンク関数から実行したい新しい onSelect 関数にどのようにアクセスすればよいですか?
ドキュメントやその他のSOの質問を見ると、これは可能であるように思われますが、私はそれを機能させることができませんでした. 特定の要素で ng-click を使用して日付ピッカーをアクティブにするという醜い回避策を思いつきましたが、可能であればこれを機能させる方法を学びたいと思います。ありがとう!