angular结合 ionic 写的小时间组件
1、安装nodejs
2、通过命令进入指定盘下路径输入以下命令:npm install -g bower
3、运行bower install 安装对应的依赖JS库
4、通过命令进入指定盘下路径输入以下命令:npm run install-g(如果已经执行过该方法,直接跳过该步)
5、进入开发环境:
npm run serve-dev 开启开发环境服务
/***按钮禁用样式和启用的样式******/
.btnDisabled {
background-color: #C0C0C0;
}
.btnEnabled {
background-color: #0097FF;
}
/***搜索中的日期组件的样式*******/
.month_select select,.year_select select{
width: 40px;
direction: ltr;
margin: 0 auto;
}
.ionic_datepicker_popup .popup-buttons button,.ionic_datepicker_popup .selected_date,.ionic_datepicker_popup .popup-body .selected_date_full {
background-color: #C29A2A!important;
}
.ionic_datepicker_popup .popup-body .month_select,.ionic_datepicker_popup .popup-body .year_select
{
border-bottom: 1px solid #C29A2A!important;
margin-bottom: 1px;
}
.ionic_datepicker_popup .today {
border: 1px solid #C29A2A!important;
}
.ionic_datepicker_popup .popup-body .button-clear,.ionic_datepicker_popup .popup-body .month_select:after,.ionic_datepicker_popup .popup-body .year_select:after
{
color: #C29A2A!important;
}
/***搜索中的日期组件的样式以上*******/
//通用按钮样式
button {
background: #45B4FF;
border-radius: 5px;
color: #ffffff;
width: 75px;
height: 30px;
border: 0;
}
.changeDate {
width: 100%;
padding: 10px 10px!important;
height: 55px;
margin-bottom: 10px;
white-space: nowrap;
}
.changeDate .bg {
width: 99%;
background-color: #E8E8E8;
}
.changeDate span {
text-align: center;
display: inline-block;
height: 29px;
}
.width33 {
width: 33%;
display: inline-block;
line-height: 2;
}
在 index.route.js 中添加日期组件的初始化
(function() {
'use strict';
angular
.module('app')
.config(routerConfig);
// routerConfig
function routerConfig($stateProvider,$urlRouterProvider,$ionicConfigProvider,ionicDatePickerProvider) {
var datePickerObj = {
inputDate: new Date(),titleLabel: '选择日期',setLabel: '确定',todayLabel: '今天',closeLabel: '关闭',mondayFirst: false,weeksList: ['日','一','二','三','四','五','六'],monthsList: ['1','2','3','4','5','6','7','8','9','10','11','12'],templateType: 'popup',from: new Date(2009,1,1),to: new Date(2058,12,31),showTodayButton: true,dateFormat: 'yyyy-MM-dd',cloSEOnSelect: false,disableWeekdays: []
};
ionicDatePickerProvider.configDatePicker(datePickerObj);
$stateProvider
.state('list',{
url: '/list',templateUrl: 'template/list.html',controller: 'ListController',controllerAs: 'vm'
});
$urlRouterProvider.otherwise('/list');
}
})();
Html 代码
<div class="white-bg changeDate"> <div class="bg"> <div class="width33" ng-model="yesterday" ng-click="yesterdayClick()"> <button>前一天</button> </div> <span class="width33" ng-model="dateValue" ng-click="dateOpen()">{{dateValue}}</span> <div class="width33" ng-model="tomorrow" ng-click="tomorrowClick()" style="text-align: right"> <button ng-disabled="vm.isDisabled" ng-class="{'true' : 'btnDisabled','false' : 'btnEnabled'}[vm.isDisabled]">后一天</button> </div> </div> </div>
JS 代码部分
(function() {
'use strict';
angular
.module('app')
.controller('ListController',ListController);
ListController.$inject = ['$scope','ionicDatePicker','$filter'];
function ListController($scope,ionicDatePicker,$filter) {
var vm = this;
var date = new Date();
vm.maxDate = new Date(date.setDate(date.getDate() + 90));
vm.today = $filter('date')(new Date(),'yyyy-MM-dd');
vm.isDisabled = false;
vm.changeDate = changeDate;
vm.changeDate();
//初始化时间组件
function changeDate(dateFlag) {
var startDateObj;
if (dateFlag) {
$scope.dateValue = $filter('date')(dateFlag,'yyyy-MM-dd');
} else {
$scope.dateValue = vm.today;
}
startDateObj = {
//选择日期后的回调
callback: function (val) {
$scope.dateValue = $filter('date')(val,'yyyy-MM-dd');
startDateObj.inputDate = new Date(val); //更新日期弹框上的日期
},from: new Date(2010,to: vm.maxDate,inputDate: new Date($scope.dateValue),mondayFirst: true,templateType: 'popup'
};
//打开开始日期选择框
$scope.dateOpen = function () {
ionicDatePicker.openDatePicker(startDateObj);
};
}
$scope.yesterdayClick = function () {
var yDate = new Date($scope.dateValue);//获取当前时间
yDate.setDate(yDate.getDate() - 1);//设置天数 -1 天
vm.changeDate(yDate);
vm.isDisabled = false;
};
$scope.tomorrowClick = function () {
var tDate = new Date($scope.dateValue);//获取当前时间
tDate.setDate(tDate.getDate() + 1);//设置天数 +1 天
vm.changeDate(tDate);
if ($scope.dateValue == $filter('date')(vm.maxDate,'yyyy-MM-dd')) {
vm.isDisabled = true;
}
};
}
})();