.controller('userdataCtrl', function ($scope, $localStorage, Upload, Account, SweetAlert, baseUrl) { $scope.personal = {avatar: ""}; //用户信息全部包含在这个对象里面 var newPersonal = {}; //创建一个空的对象,为后面深拷贝 function init() { Account.findById({id: $localStorage.userId}, function (data) { //获取用户信息的接口 $scope.personal = data; //用户信息为获取到的数据信息 newPersonal = JSON.parse(JSON.stringify($scope.personal)); //深拷贝,空对象里面的值为获得的用户
信息,为后面对比是否修改了用户信息 console.log(newPersonal); $scope.tempAvatar = baseUrl + $scope.personal.avatar; //用户头像地址为路劲+用户信息里面的头像 $localStorage.avatar = baseUrl + $scope.personal.avatar; //本地的头像为用户头像 }) } init(); $scope.upload = function (file) { //点击触发上传头像的事件 var name = file.$ngfName; //为了从新命名头像名称,获取file的图片名字 var newname = name.substr(-4); //截取name的后四位 var newName = new Date().getTime() + newname; //新的名称为获取到时间点(字符串格式)+截取的后四位 Upload.rename(file, newName); //从新命名 console.log(file); Upload.upload({ //头像上传 //服务端接收 url: baseUrl + "/api/containers/avatars/upload", //服务器接收地址 //上传的同时带的参数 data: {file: file} //数据参数 }).success(function () { //上传成功 $scope.persoanls = true; //保存的按钮显示 $scope.personal.avatar = newName; //数据里面的用户头像信息为新的名字 $scope.tempAvatar = baseUrl + "/api/containers/avatars/download/" + newName; //用户头像的完整路劲 }).error(function () { //上传失败 SweetAlert.swal("", "头像上传失败", "warning"); //弹出框 }); init(); }; $scope.$watch("personal.email", function () { //$watch监听事件 if ($scope.personal.email !== newPersonal.email) { //如果信息不为旧信息,即修改了信息 $scope.persoanls = true; //保存按钮显示 } }); $scope.$watch("personal.Company", function () { if ($scope.personal.Company !== newPersonal.Company) { $scope.persoanls = true; } }); $scope.$watch("personal.username", function () { if ($scope.personal.username !== newPersonal.username) { $scope.persoanls = true; } }); $scope.$watch("personal.Signature", function () { if ($scope.personal.Signature !== newPersonal.Signature) { $scope.persoanls = true; } }); // $scope.$watch("personal.avatar", function () { // if ($scope.personal.avatar === newPersonal.avatar) { // $scope.tempAvatar = baseUrl + "/api/containers/avatars/download/" + newName; // } // }); $scope.personalinfo = function () { //保存按钮点击触发保存用户信息事件 console.log($scope.file); if(!$scope.file){ //如果用户头像没有改变 delete $scope.personal.avatar; //删除用户头像 } // console.log($scope.personal.avatar.split('/').pop()) Account.updatePersonalInfo({accountId: $localStorage.userId}, $scope.personal, function (data) { $scope.persoanls = true; //更新用户信息的事件 参数为一个包含所有信息的对象 可以删除对象中的参数 $scope.versionid = $scope.tempAvatar; //用户头像赋值给一个新的变量 $scope.$emit('dataChanged', $scope.versionid); //$emit将新的变量传递给父级 父级再广播出去,兄弟
级可以获得这个变量值,从而进行改变 为了实现别处头像的更改 console.log(data); $scope.personal = data; SweetAlert.swal("", "用户信息更新成功", "success"); init(); //初始化一下重新获取用户信息 }) }; })