gpt4 book ai didi

javascript - 我如何将 jquery datepicker 与 Angular 文本框绑定(bind)

转载 作者:行者123 更新时间:2023-11-29 14:49:24 25 4
gpt4 key购买 nike

我有这个日期选择器

http://jsfiddle.net/kevinj/TAeNF/2/

Current有这样的代码

'use strict';

angular.module('core').directive('jqdatepicker', function () {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModelCtrl) {
element.datepicker({
dateFormat: 'dd/mm/yy',
onSelect: function (date) {
scope.date = date;
scope.$apply();
}
});
}
};
});

我是这样用的

<input type="text" ng-model="date" jqdatepicker />
<br/>
{{ date }}

我的问题是我想在多个地方使用它,它们可以有不同的模型

model=date1 , model=date2

有什么方法可以使它通用,以便它可以在模型上工作,无论它附加到什么模型上,而不是硬代码

scope.date = date;

最佳答案

使用 ngModel Controller 设置值,而不是在默认范围指令中设置范围变量。如果你正在更新任何范围属性并且你想让它可重用你不应该使用默认范围选项(当没有提到默认为当前范围时,与范围相同:false),或者如果你需要 ngModel 那么只需使用 ngModel Controller 实例。在您的情况下,3 个关键事项是:-

//Set $viewvalue property of ngModel
ngModelCtrl.$setViewValue(date);
//Update the input with the ngmodel view value or in otherwords render it.
ngModelCtrl.$render();
//Update any bindings invoking digest cycle
scope.$apply();

尝试:

datePicker.directive('jqdatepicker', function () {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModelCtrl) {
element.datepicker({
dateFormat: 'DD, d MM, yy',
onSelect: function (date) {
//Set viewvalue and apply it to update the input
ngModelCtrl.$setViewValue(date);
ngModelCtrl.$render();
//Update bindings
scope.$apply();
}
});
}
};
});

Demo

关于javascript - 我如何将 jquery datepicker 与 Angular 文本框绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28080612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com