Я использую текстовый редактор angularjs, так как мне нужно передать значение из контроллера в $ provide.decorator
$provide.decorator('taOptions', ['taRegisterTool',
'$delegate','$aside', function (taRegisterTool, taOptions, $aside) {
taRegisterTool('uploadImage', {
iconclass: "fa fa-image",
action: function (deferred) {
debugger;
var editor_data = this;
$aside.open({
controller: 'UploadImageModalInstance',
templateUrl: 'views/engine/common/imageUpload.html',
}).result.then(
function (result) {
debugger;
document.execCommand('insertImage', true, result);
deferred.resolve();
},
function () {
deferred.resolve();
}
);
return false;
}
});
taOptions.toolbar[1].push('uploadImage');
return taOptions;
}]);
Я звоню сюда UploadImageModalInstance
контроллер, и он загрузит изображение в s3 ивернуть S3 изображение URL. Теперь я хочу отправить это значение URL вызываемому декоратору.
bizexEngine.controller('UploadImageModalInstance',
function($scope, $aside, Upload, $uibModalInstance){
$scope.image = 'img/default.png';
debugger;
$scope.progress = 0;
$scope.files = [];
$scope.upload = function(files){
debugger;
Upload.upload({
url: __env.apiUrl + '/api/v1/accounts/upload_image_sss',
data: {data: files},
method: 'PUT'
}).progress(function (evt) {
$scope.progress = parseInt(100.0 * evt.loaded / evt.total);
}).success(function (data) {
$scope.progress = 0;
$scope.image = data.url;
});
};
$scope.insert = function(){
$uibModalInstance.dismiss();
};
})
Здесь возвращаем $ scope.image вызываемому декоратору