Javascript 将jquery插件转换为指令
我正在尝试将jQuery插件转换为指令。这是图书馆: 在文档中有一个选项:Javascript 将jquery插件转换为指令,javascript,jquery,angularjs,angularjs-directive,datepicker,Javascript,Jquery,Angularjs,Angularjs Directive,Datepicker,我正在尝试将jQuery插件转换为指令。这是图书馆: 在文档中有一个选项: $(document).ready(function() { $("#datepicker").datepicker(); $("#datepickerbtn").click(function(event) { event.preventDefault(); $("#datepicker").focus(); }) }
$(document).ready(function() {
$("#datepicker").datepicker();
$("#datepickerbtn").click(function(event) {
event.preventDefault();
$("#datepicker").focus();
})
});
我创建的指令:
app.directive('dateP', function(){
return{
restrict:'A',
require:'ngModel',
link:function(scope, element, attr, ngModel){
$(element).datepicker(scope.$eval(attr.dateP));
console.log('hey');
ngModel.$setViewValue(scope);
}
}
});
但它不起作用,任何帮助都将不胜感激
我读过:基本上你写的是
ng模式
,而不是ng模式
和指令,你应该定义日期选择器选项,而不是范围。$eval(attr.dateP)
,这是完全错误的。在内部,您需要以json
格式提供它们的选项,就像我们在这里提到的{format:'dd/mm/yyyy'})
HTML
<input date-p id="datepicker1" class="input-small" type="text" ng-model="dt">
更新
app.directive('dateP', function() {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attr, ngModel) {
element.datepicker({
format: 'dd/mm/yyyy'
});
}
}
});
对于按钮上的showdatepicker
,单击您需要在控制器中添加以下方法
控制器
$scope.showDatepicker = function(){
angular.element('#datepicker1btn').datepicker('show');
};
谢谢。@sani检查了一下,扑通一声,回答了一个问题,我能再问你一件事吗?你怎么知道我们应该加上这个;link:function(scope,element,attr,ngModel){element.datepicker({format:'dd/mm/yyyy'});或者angular.element('#datepicker1btn').datepicker('show');因为它的
datepicker
选项是类似于{format:'dd/mm/yyyyy'}的json提供的选项
看看这个,只有它会绑定到那个元素。哦,这是真的,感谢一个百万好友,救了我一天