app.controller('IssueController', ['$scope', '$http', '$routeParams', 'auth', 'common', function($scope, $http, $routeParams, auth, common){ var vm = $scope; vm.previewImgUrls = []; vm.showAtDialog = false; var parseAtPersons = function (comment) { var selectedPersons = []; var ss = comment.match(/@(.+?)\s+/g); for(var i in ss){ var personName = ss[i].substr(1, ss[i].length-2); console.log(personName); for(var j in vm.at_persons){ var person = vm.at_persons[j]; if(person.name == personName){ selectedPersons.push(person); } } } for(var i in selectedPersons){ var person = selectedPersons[i]; comment = comment.replace('@'+person.name+' ', '@'+person.name+'('+person.login+')'+' ' ); } return comment; }; vm.onPostChange = function (newValue, oldValue) { if(newValue.length > oldValue.length && newValue.match(/@$/)=='@'){ console.log('@ fire'); vm.showAtDialog = true; if(!vm.at_persons){ $http.get('/at/'+$routeParams.id+'.json?type=Issue').then(function (response) { vm.at_persons = response.data; }); } } console.log(vm.issue.comment); }; vm.selectAtPerson = function (index) { var person = vm.at_persons[index]; vm.showAtDialog = false; vm.issue.comment += person.name + ' '; }; vm.cancelAt = function(){ vm.showAtDialog = false; } common.init({ id: $routeParams.id, scope: $scope, type: 'issues', replyType: 'Issue', urlName: 'issues', loadCallback: function(data){ console.log(data.data); if(data.status == -1){ $scope.showtip = true; return; } //回复级别 0 一级回复 1 二级回复 replytype = data.type; page = data.page; var parseImgAttachment = function(attachments){ var urls = []; if(!attachments){ return urls; } for(var i = attachments.length-1; i>=0; i--){ if(attachments[i].filename.match('.jpg$')=='.jpg' || attachments[i].filename.match('.png$')=='.png'){ urls.push(attachments[i].download_url); attachments.splice(i, 1); } } return urls; }; if (replytype == 0){ if (page == 0){ $scope.issue = data.data; $scope.page = 0; $scope.is_public = data.is_public; $scope.previewImgUrls = parseImgAttachment($scope.issue.attachments); } else{ $scope.issue.all_children = $scope.issue.all_children.concat(data.data.all_children); } $scope.has_more = $scope.issue.all_children.length < $scope.issue.comment_count; console.log($scope.has_more); } else{ comment_id = data.data.id; for (var i in $scope.issue.all_children) { var comment = $scope.issue.all_children[i]; if(comment.id == comment_id){ // comment.parents_reply_top = comment.parents_reply_top.concat(data.data.parents_reply_top); comment.parents_reply_top = data.data.parents_reply_top.concat(comment.parents_reply_top); } } } }, replyCallback: function(){ }, beforeReplay: function(data){ return parseAtPersons(data); } }); $scope.previewImg = function(index){ console.log(index); wx.previewImage({ current: $scope.previewImgUrls[index], // 当前显示图片的http链接 urls: $scope.previewImgUrls // 需要预览的图片http链接列表 }); } }]);