87,904
社区成员
发帖
与我相关
我的任务
分享
<div class="form-group col-sm-3">
<label class="control-label col-sm-4">起始日期</label>
<input type="text" ng-model="begindate" class="form_datetime form-control col-sm-8">
</div>
$scope.click = function(){
console.log($scope.begindate); //undefined
}
var date = getdate('yyyy-mm-dd',0);
$(".form_datetime").datetimepicker({
minView: 'month',
language: 'zh-CN',
format: 'yyyy-mm-dd',
todayBtn: 1,
autoclose: 1
}).val(date).on('hide',function(){
var $this = $(this);
var _this = this;
$scope.$apply(function(){
$scope[$this.attr('ng-model')] = _this.value;
});
});
directives.directive('dateDirective',[function(){
return {
restrict: "A",
require: "?ngModel",
link: function($scope, $ele, $attrs, $ngModel) {
$ele.on('changeDate',function(e){
$scope.$apply(function() {
var val = e.date.format('yyyy-MM-dd');;
$ngModel.$setViewValue(val);
})
});
var _oldRender = $ngModel.$render;
$ngModel.$render = function() {
_oldRender && _oldRender();
$ele.val() != $ngModel.$viewValue && $ele.val($ngModel.$viewValue || "");
}
}
}
}]);
用这个指令重写$render
$(".form_datetime").on('changeDate',function(e){
$scope.begindate= e.date.format('yyyy-MM-dd');
$scope.$apply();
});
但是不管是这种还是上面的那种,都不是在控件初始化的时候触发的,因此取不到初始值(当前时间),bootstrap datepicker的官方文档上也没有控件初始化的事件,不知道怎么样才能取到。
另外还有bootstrap select,ng-model同样取不到值,但是换成普通的select标签就没有问题
在项目中这些第三方的UI控件应该很常用吧,应该怎么做呢