关于mobiscroll时间控件没能正常绑定值问题
来源:互联网 发布:access 输入数据 编辑:程序博客网 时间:2024/04/30 15:03
之前有写篇关于mobiscroll插件集成成angularjs指令到项目中使用
只说怎么集成到angular项目中作为指令来使用,但是有个问题:在页面时间控件上选择完时间后时间值却绑定不到ng-model中。这问题困扰我好久,最后还是得请大神出马解决。我这里也就只copy下代码以便以后好研究理解。当然要是哪位大神知道怎么理解的话请留言指导下,不胜感激!
/* * 时间轮盘选择器 */m.directive('dateWheel', ['dateFilter', function(dateFilter) { return { restrict: 'EA', replace: true, require: 'ngModel', scope: { ngModel: "=", settings: "@", setStartDate : "@", callback: "&", intercept:"@" }, template: '<input type="text" mobiscroll-date="insideSettings" mobiscroll-instance="myInstance"/>', controller: ['$scope', '$timeout', function($scope, $timeout) { var settings = $scope.$parent.$eval($scope.settings); $scope.insideSettings = angular.extend({ theme: "ios-7", lang: "zh", display: "bottom", mode: "datetimeDate", dateFormat: "yyyy-mm-dd", minDate: $scope.setStartDate }, settings, { onBeforeShow: function(inst) { // 设置初始值 if (angular.isNumber($scope.ngModel)) { inst.setDate(new Date($scope.ngModel)) } settings && settings.onBeforeShow && settings.onBeforeShow(inst); }, onSelect:function(ViewText,inst){// $scope.ngModel = parseInt($scope.ngModel/36000000)*36000000; if(!$scope.intercept)return; switch ($scope.intercept){ case "d":// $scope.vacation.planEndDate = new Date($scope.vacation.planEndDate).setHours(23,59,0,0);// $scope.ngModel = parseInt($scope.ngModel/36000000/24)*36000000*24; break; case "h": $scope.ngModel = parseInt($scope.ngModel/3600000)*3600000; break; case "m": $scope.ngModel = parseInt($scope.ngModel/60000)*60000; break; default: break; } inst.value = $scope.ngModel; $scope.$apply(); }, onHide: function(inst) { if (angular.isFunction($scope.callback())) { $scope.callback()($scope.ngModel); } settings && settings.onHide && settings.onHide(inst); } }); if (!!$scope.$parent.$eval($scope.setStartDate)) { $scope.insideSettings.minDate = new Date(); } // 接受broadcast下来的数据和事件 更新数据 $scope.$on('mobiscroll-dateWheel-clear', function() { $timeout(function() { $scope.myInstance.clear(); }) }); }], link: function($scope, element, attrs, ngModel) { ngModel.$parsers.push(function(value) { return angular.isDate(value) ? value.getTime() : value; }); ngModel.$formatters.push(function(value) { if (angular.isNumber(value)) { element.val(dateFilter(value, $scope.insideSettings.dateFormat.replace(/m/g, "M"))); } return value; }); } };}]);
而在页面中则:
<input type="text" name='plannedBeginTime' date-wheel placeholder="请选择计划开始时间" ng-model="vacation.planStartDate" data-intercept='d' data-callback="callback" required/>
当然在总控制器中还得依赖 mobiscroll-datetime
onSelect:function(TextValue,inst){}函数作用是在选择完时间后,在控件上显示时间改成整点整分。这个根据需要来,如果不需要改的话可以把这个函数去掉。
0 0
- 关于mobiscroll时间控件没能正常绑定值问题
- Mobiscroll控件动态绑定数据
- 移动端mobiscroll时间控件的使用
- 关于mobiscroll.js的文本框初始化问题
- mobiscroll 时间选择器小结
- mobiscroll 日期控件
- mobiscroll控件学习
- 关于多站点一些控件不能正常使用问题
- 关于mobiscroll treelist
- 移动端jquery-pie-loader动态饼状图以及mobiscroll时间控件(最新版)
- 关于highcharts时间轴与数据绑定的问题
- mobiscroll时间插件的用法
- 关于easyUI tree控件后台数据绑定问题
- android关于多个控件绑定相同事件的问题
- winform 数据绑定 控件值更新问题
- HTML控件正常结尾问题!
- mobiscroll
- mobiscroll
- Canvas简记
- Java的4种引用
- TextView 的伸展和收缩效果
- iOS NSDictionaryOfVariableBindings “#”的迷雾
- Android的网络Http判断是否连接服务器
- 关于mobiscroll时间控件没能正常绑定值问题
- 禁止ViewPager滑动
- 算法导论 01背包实现
- Elastic Search安装及使用
- Oracle 查看表空间的大小及使用情况sql语句
- 使用junit进行单元测试的注解的执行顺序。
- SpringMVC详细示例实战教程
- 选择法排序
- 用keytool创建Keystore和Trustsotre文件