ng-img-crop是一个很棒的指令但是我无法适应我的场景。我的问题是,当用户有图像时,我想给他们一个选项,如果他们愿意,可以调整图像大小。
所以这是我试图使用的代码:
js:
vm.userImageOriginal = vm.editUser.image_pkey ? 'api/file/' + vm.editUser.image_pkey : null;
HTML:
<img-crop image="profileVM.userImageOriginal" result-image="profileVM.userImageNew"
area-type="square" result-image-size="300" on-change="profileVM.imageCropped = true;"></img-crop>
所以我有两个问题:
1)如果用户确实更改了裁剪,我只想上传新图像。我尝试在on-change中设置一个标志,但看起来像on-change也会在初始化时执行。有没有办法知道用户是否实际裁剪过?
2)有没有办法设置方形/圆的位置。在我的场景中,如果有现有的用户图像,我想将裁剪方块设置为当前图像的尺寸(即图像的边框)。
提前致谢。
答案 0 :(得分:0)
像这样解决:
将以下属性添加到html中的ng-img-crop指令:
on-load-done="profileVM.addCroppingWatcher()"
这是功能:
function addCroppingWatcher(){
if (croppingWatcher)
return;
$window.setTimeout(function(){
croppingWatcher = $scope.$watch(
function(){ return vm.userImageNew; },
function(newVal, oldVal){
if (oldVal && oldVal != newVal) {
vm.imageCropped = true;
croppingWatcher();
}
}
);
}, 0);
}