(function (app) { app.controller('homeCtrl', ["$scope", "$http", 'config', "$state", "msg", "$ionicPopover", "homeService" , function ($scope, $http, config, $state, msg, $ionicPopover, homeService) { $scope.type = 'hot';//tab切换 $ionicPopover.fromTemplateUrl('my-popover.html', { scope: $scope }).then(function (popover) { $scope.popover = popover; }); $scope.openPopover = function ($event) { $scope.popover.show($event); }; $scope.closePopover = function () { $scope.popover.hide(); }; $scope.changetype = function (type) { $scope.type = type; $scope.load(true); } $scope.toDetail = function (id) { $state.go('app.home_dreamdetail',{id:id}); }; $scope.filter = { hasMore: false, pageIndex: 1, pageSize: 20, } $scope.index = { banner: [], users: [], dreams:[] }; $scope.load = function (init) { if (init) { $scope.filter.pageIndex = 1; $scope.index.dreams = []; } msg.loading(); homeService.index($scope.type, $scope.filter.pageIndex).then(function (result) { msg.hide(); $scope.index.banners = result.data.data.banners; $scope.index.users = result.data.data.users; $scope.filter.pageIndex++; var more = (result.data.data.dreams.data.length >= $scope.filter.pageSize); $scope.filter.hasMore = more; $scope.index.dreams = $scope.index.dreams.concat(result.data.data.dreams.data); if (init) { $scope.$broadcast('scroll.refreshComplete'); } else { $scope.$broadcast('scroll.infiniteScrollComplete'); } }, function (error) { msg.hide(); }); } $scope.data = {}; $scope.load(true); //$scope.$on('$ionicView.enter', function () { //}); }]); app.controller('dreamDetailCtrl', ["$scope", "$state", "msg", "common", "config", "homeService", "$ionicTabsDelegate", "$stateParams", "$ionicModal", "$timeout", "$ionicScrollDelegate", "$interval" , function ($scope, $state, msg, common, config, homeService, $ionicTabsDelegate, $stateParams, $ionicModal, $timeout, $ionicScrollDelegate, $interval) { var id = $stateParams.id; id=5; $scope.load = function (id) { msg.loading(); homeService.dreamDetail(id).then(function (result) { msg.hide(); console.log(result); $scope.dream = result.data.data console.log(); var date = new Date(); var inter = (date.getTime() - new Date($scope.dream.created_at).getTime())/1000 leftTimer($scope.dream.time-inter); $scope.multi = { a: $scope.dream.a, b: new Date($scope.dream.created_at), c: $scope.dream.c, result: 1, promise:null, } $scope.calcmultiplier(); }, function (error) { msg.hide(); }); } $scope.type = 1;//tab切换 $scope.tosupport = false; $scope.support = function ($event) { $event.stopPropagation(); $scope.tosupport = true; $scope.vm.coin = 0; $scope.index = 0; } $scope.cancelSupport = function () { $scope.tosupport = false; } $scope.changeType = function (type) { $ionicScrollDelegate.scrollTop(true); $scope.type = type; } $scope.index = 0; $scope.$on('$ionicView.beforeEnter', function () { $scope.load(id); $ionicTabsDelegate.showBar(false); }); $scope.$on('$ionicView.leave', function () { $ionicTabsDelegate.showBar(true); if($scope.multi.promise)$interval.cancel($scope.multi.promise); if($scope.leftTimer)$interval.cancel($scope.leftTimer); }); $scope.vm = { coin:"", title:"" } $scope.timer = ''; var leftTimer = function (countDown) { var day=parseInt(countDown/(24*60*60)); var h=parseInt(countDown/(60*60)%24); var m=parseInt(countDown/60%60); var s=parseInt(countDown%60); $scope.timer=(h<10?'0'+h:h)+'时'+(m<10?'0'+m:m)+'分'+(s<10?'0'+s:s)+'秒'; if(day>0) $scope.timer = day+'天'+ $scope.timer; if($scope.leftTimer)$interval.cancel($scope.leftTimer); $scope.leftTimer = $interval(function () { if (countDown >= 1) leftTimer(countDown - 1); },1000); if(countDown<=0){ $scope.timer='结束'; } } $scope.changeIndex = function (index) { $scope.index = index; $scope.vm.coin = index*5; } //实时排行 $scope.sort = { first: 'img/demo/head5.jpg', second: 'img/demo/head6.jpg', third: 'img/demo/head7.jpg', slide: '' } $scope.vidEnded = function () { alert('播放完毕'); } //实时计算支持乘数 $scope.calcmultiplier = function () { $scope.multi.promise=$interval(function () { var date = new Date(); var inter = date.getTime() - $scope.multi.b.getTime(); var minutes = Math.floor(inter / (60 * 1000)); var number = $scope.multi.a * minutes + $scope.multi.c;//js浮点运算会失真,根据muti.a的可能值范围,比如乘以100再除以100 if (number<=1) { number = 1; } $scope.multi.result = Math.round(number * 100) / 100; },1000); // 点击支持取消 $interval.cancel($scope.multi.promise); 获取数据后重新开始执行 } $scope.supportDream = function (data) { if(!$scope.vm.coin){ msg.error("请选择梦想币数量!"); return ; } var data = { id:id, coin:$scope.vm.coin }; homeService.supportDream(data).then(function(result){ $scope.tosupport = false; $scope.load(id); // //测试动画切换 $scope.sort.first = 'img/demo/head7.jpg'; $scope.sort.second = 'img/demo/head6.jpg'; $scope.sort.third = 'img/demo/head5.jpg'; $scope.sort.slide1 = 'list-grow-animation'; $scope.sort.slide2 = 'slide-in-both-ways'; $scope.sort.slide3 = 'bounce-animation'; $interval.cancel($scope.multi.promise); }) }; $scope.collectionDream = function(is_collection){ homeService.collectionDream(id,is_collection).then(function(result){ $scope.dream.is_collection=result.data.data; }) } $scope.add = function(is_collection){ var data = { id:id, title:$scope.vm.title, pics:$scope.imgs, }; homeService.add_interaction(data).then(function(){ $scope.load(id); $scope.closeModal(); }) } $scope.showText = function(){ $scope.aboutStyle = { "white-space" : "normal" } $scope.ionDownStyle = { "display" : "none" } } $scope.input = { placeholder: '评论', focus:false } $scope.replay = function ($event, name) { $scope.input.focus = true; //$event.stopPropagation(); $scope.input.placeholder = "回复" + name; $scope.vm.title=''; } $scope.comment = function(){ // $event.stopPropagation(); $scope.input.placeholder = "评论"; $scope.input.focus = true; $scope.vm.title=''; } $scope.submitComment = function(id){ $scope.input.placeholder = "评论"; var data = { id:id, content:vm.comment, }; homeService.add_comment(data).then(function(){ $scope.vm.comment = '' ; $scope.load(id); $scope.closeModal(); }) } $scope.addpict = function () { common.chooseImage().then(function (img) { common.uploadFiles(img,1).then(function (result) { var response = JSON.parse(result.response); var file = response.data.file; $scope.imgs.push(config.imgServer+file); console.log(JSON.stringify(config.imgServer+file)); }, function (error) { msg.error('图片上传失败'); }); }, function (error) { console.log('图片选择失败'); }); }; $ionicModal.fromTemplateUrl('recharge-modal.html', { scope: $scope, animation: 'slide-in-up' }).then(function(modal) { $scope.rechagemodal = modal; }); $scope.openRechargeModal = function() { $scope.rechagemodal.show(); $scope.vm.money = ''; }; $scope.closeRechargeModal = function() { $scope.rechagemodal.hide(); }; $ionicModal.fromTemplateUrl('interaction-modal.html', { scope: $scope, animation: 'slide-in-up' }).then(function(modal) { $scope.modal = modal; }); $scope.openModal = function() { $scope.modal.show(); $scope.vm.title = ''; $scope.imgs = []; }; $scope.closeModal = function() { $scope.modal.hide(); }; //当我们用到模型时,清除它! $scope.$on('$destroy', function() { $scope.modal.remove(); }); }]); app.controller('searchCtrl', ["$scope","homeService", "$state", "msg", "$ionicTabsDelegate", "$ionicNavBarDelegate" , function ($scope,homeService, $state, msg, $ionicTabsDelegate, $ionicNavBarDelegate) { $scope.index = 0; $scope.index1 = 0; $scope.vm = { keyword : "" } $scope.select = function (keyword) { var data = { keyword:keyword, }; homeService.postSearch(data).then(function(result){ }); } $scope.$on('$ionicView.beforeEnter', function () { $ionicTabsDelegate.showBar(false); $ionicNavBarDelegate.showBackButton(false); homeService.getSearch().then(function(result){ $scope.hot_searches = result.data.data.hot_searches; $scope.history_searches = result.data.data.history_searches; }); }); $scope.$on('$ionicView.leave', function () { $ionicTabsDelegate.showBar(true); }); }]); app.controller('interactionAddCtrl', ["$scope","homeService", "$state", "msg","config","common", "$ionicTabsDelegate", "$ionicNavBarDelegate" , function ($scope,homeService, $state, msg,config,common, $ionicTabsDelegate, $ionicNavBarDelegate) { $scope.$on('$ionicView.beforeEnter', function () { }); }]); app.controller('homeDreamsCtrl', ["$scope", "$state", "myService", "msg" , function ($scope, $state, myService, msg) { $scope.$on('$ionicView.beforeEnter', function () { myService.myDream().then(function(result){ console.log(result.data.data); $scope.dreams = result.data.data; }); }); $scope.toDetail = function (id) { $state.go('app.home_dreamdetail',{id:id}); }; }]); })(angular.module('app.controllers'));