2017-10-09 7 views
0

コンテンツセクションのメディアアイテムにオーバーレイを開く画像クロッタ用のカスタムコントローラを実装しました。今は、オーバレイの表示と作物の周りをうまくいじめることができますが、「作物の保存」を選択すると、変更は維持されません。メディアセクションでイメージクロッパーを使用すると、変更が正しく行われています。イメージクロッタでメディアアイテムに加えられた変更を保存する

私はメディアリソースの保存機能のためにbelle docsを調べましたが、私にとってはうまくいかないようです。

ドキュメントは、最初のIDを取得して、コールバックで保存するように書かれています:

私のオーバーレイオブジェクトで
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"); 
          }); 
         }); 
       } 

私はときにエラー応答を取得していません送信機能を呼び出す "Save Crops"がヒットしましたが、変更は保存されません。変更を正しく保存するためにメディアオブジェクトで実行する必要のあるアクションが不明です。

+0

私はあなたが欲しいものを知っているか分かりません。 Image Cropperは、あらかじめ定義されたクロップを使用して、後で表示されたイメージをトリミングするために使用されます。フロントエンドユーザーに、あらかじめ定義された値のいずれかを選択できるようにしますか?または、ユーザーが自由に画像をトリミングするようにしたいとしますか? –

答えて

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(); 

したがって、送信機能に渡されたモデルは、この構造と値をすべて再作成する必要があります。

関連する問題