Я использую угловую директиву TinyMce для включения редактирования Rich Text в моем приложении angularjs. https://github.com/angular-ui/ui-tinymce
Директива работает так, как ожидалось. Но я хотел интегрировать плагин сохранения, который позволит нам вызвать пользовательские функции сохранения. https://www.tinymce.com/docs/plugins/save/
Я попытался передать функцию в угловом контроллере в качестве функции обратного вызова с помощью следующей опции инициализации save_onsavecallback: function() {console.log("Сохранено"); } }
Пример кода следующим образом (подумайте, что у меня есть очень большой объект init, определенный ранее в моем приложении с включенным плагином сохранения)
angular.module("app").controller('editpageContentController', ['$scope', 'pagesDataService', '$routeParams', 'toaster', 'tinymceGlobalOptions',
function ($scope, pagesDataService, $routeParams, toaster, tinymceGlobalOptions) {
tinymceGlobalOptions.save_onsavecallback = function () { $scope.submit(); }
$scope.tinymceOptions = tinymceGlobalOptions;
$scope.pgContent = {
pagePropertiesId: $routeParams.id,
pageTitle: "",
pageContent: ""
}
pagesDataService.getPageContent($scope.pgContent.pagePropertiesId).then(function (data) {
$scope.pgContent = data;
}, function (error) {
toaster.pop('error', "Page load failed", error);
});
$scope.submit = function () {
if ($scope.frmEditPageContent.$valid) {
pagesDataService.savePageContent($scope.pgContent).then(function (data) {
if (data)
toaster.pop('success', "Sucess", "Page saved successfully.");
}, function (error) {
toaster.pop('error', "Failure", error);
});
}
}
}
]);
Не уверен, могу ли я вызвать $ scope.submit() в функции обратного вызова. (Я попробовал, это не сработало, так как обратный вызов вообще не запускался)
Я не видел никаких ошибок, зарегистрированных в консоли.
Найдено 2 проблемы:
save_enablewhendirty: false,
к настройкам по умолчаниюdata-ng-controller="testController as tc"
на data-ng-controller="testController"
потому что вы не использовали controllerAs
в своем приложении.Рабочий пример: https://plnkr.co/edit/IbnLKsFl6YMXQxNU0RgN?p=preview
tiny-mce
не устанавливает поле как «грязное». Возможно, вам нужно создать <form>
или вручную установить поле как грязное ( docs.angularjs.org/api/ng/type/form.FormController )
console.log('Saved');
- это сработало?