abp 中wangEditor-angular 的使用
主要是上传图片的配置。
(function () {
if (typeof angular === 'undefined') {
return;
}
angular.module('editorContainer', [])
//.constant('uiBsEditor', { uiEditor: {} })
.directive('contenteditable', function () {
return {
restrict: 'A',
//scope:true,
//scope: { 'id': '&id' },
require: 'ngModel',
link: function ($scope, element, attrs, ctrl) {
// 创建编辑器
//scope = $scope;
var editor = new wangEditor(element);
//1.改名很重要,因为files不改的话,会报告参数不一样
editor.config.uploadImgFileName = "files";
//2.上传路径
editor.config.uploadImgUrl = attrs.upimageurl|| ''; //$scope.vm.editer.upimageurl;// '/fileupload/postimage';
// editor.config.uploadHeaders = attrs.token || '';
//3.防XSRF
if (attrs.token) {
editor.config.uploadHeaders = {
'X-XSRF-TOKEN': attrs.token
};
}
//editor.config.customUpload = true; // 配置自定义上传的开关
//editor.config.customUploadInit = $scope.vm.uploadFiles; // 配置上传事件,uploadInit方法已经在上面定义了
editor.config.hideLinkImg = true;
editor.config.menus = [
'source',
'|',
'bold',
'underline',
'italic',
'strikethrough',
'eraser',
'forecolor',
'bgcolor',
'|',
'quote',
'fontfamily',
'fontsize',
'head',
'unorderlist',
'orderlist',
'alignleft',
'aligncenter',
'alignright',
'|',
'link',
'unlink',
'table',
'emotion',
'|',
'img',
'video',
'|',
'undo',
'redo',
'fullscreen'
];
ctrl.$render = function () {
element.html(ctrl.$viewValue || '');
};
editor.onchange = function () {
// 从 onchange 函数中更新数据
$scope.$apply(function () {
var html = editor.$txt.html();
ctrl.$setViewValue(html);
});
};
editor.create();
$scope.$on('$destroy', function () {
editor.destroy();
delete editor;
});
}
};
});
})();
前台html
<div ng-model="vm.internalclassinfo.classInfo" upimageurl="{{vm.uploadurl}}" token="{{vm.token}}" contenteditable="true" style="height:350px;"></div>
前台js
vm.uploadurl = abp.appPath + "FileUpload/Upload2?uptype=cmsimage";
vm.token = abp.security.antiForgery.getToken();
后台
public string Upload2(IEnumerable<HttpPostedFileBase> files)
这里只写一个定义即可。
关键点已加红字。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构