2017-10-09 3 views
0

콘텐츠 섹션의 미디어 항목에 오버레이를 여는 이미지 자르기 용 사용자 정의 컨트롤러를 구현했습니다. 지금 나는 오버레이 디스플레이와 작물을 가지고 잘 놀 수 있지만 "Save Crops"를 선택하면 변경 사항이 유지되지 않습니다. 미디어 섹션에서 이미지 자르기를 사용하면 올바르게 변경됩니다.이미지 자르기가있는 미디어 항목의 변경 사항 저장

미디어 리소스의 저장 기능에 대한 벨 워드 프로세서를 살펴 보았지만 나에게 적합하지 않은 것 같습니다.

mediaResource.getById(1234) 
     .then(function(media) { 
      media.name = "I want a new name!"; 
      mediaResource.save(media, false) 
       .then(function(media){ 
        alert("Retrieved, updated and saved again"); 
       }); 
     }); 

을 내 오버레이 객체에서 나는이 기능 제출이 : 나는 오류 응답하는 경우를 얻을

submit: function (model) { //when user clicks save crops button 
        $scope.overlay.saving = true; 
        mediaResource.getById($scope.images[0].udi) 
         .then(function (media) { 
          media.umbracoFile = $scope.overlay.value; 
          mediaResource.save(media, false, []).then(function (media) { //save changes to media item, or craete if new 

           console.log("On saving start end:", $scope); 
           $scope.overlay.saving = false; 
           $scope.overlay.show = false; 
           notificationsService.remove(0); 
           notificationsService.success("The crops for '" + media.name + "' have been saved"); 
          }); 
         }); 
       } 

워드 프로세서는 먼저 콜백에 저장 한 후 ID를 취득하고, 말한다 제출 기능을 호출하는 "Save Crops"를 누르지 만 변경 사항이 저장되지 않습니다. 변경 사항을 올바르게 저장하기 위해 미디어 객체에서 수행해야하는 작업이 확실하지 않습니다.

+0

내가 원하는 것을 알고 있는지 확실하지 않습니다. 이미지 자르기 도구는 미리 정의 된 자르기를 사용하므로 나중에 나중에 표시된 이미지를자를 수 있습니다. 프론트 엔드 사용자에게 미리 정의 된 값 중 하나를 선택할 가능성을 부여 하시겠습니까? 또는 사용자가 이미지를 자유롭게 자르기를 원합니다. –

답변

0

좋아, 무슨 뜻인지 알 것 같아.

:

{ 
"src":"/media/1050/Image1.jpg", 
"focalPoint":{"left":0.5,"top":0.5}, 
"crops":[ 
    {"alias":"crop1", 
    "width":500, 
    "height":800, 
    "coordinates":{ 
     "x1":0.30206315789473687, 
     "y1":0.0, 
     "x2":0.28148947368421051, 
     "y2":0.0} 
     } 
    ] 
} 

당신은이 문자열로 umbracoFile 속성을 가져 표시 할 수 있습니다 : 기본적으로 이미지의 umbracoFile 속성은이 형식의 JSON 문자열의 모든 이미지와 작물 정보를 저장하는 ImageCropper의 데이터 유형을 사용

var data = image.GetPropertyValue("umbracoFile").ToString(); 

그래서 제출 함수에 전달 된 모델은이 구조와 값을 모두 다시 만들어야합니다.