将Redactor WYSIWYG集成在AngularJs指令中
发布时间:2020-12-17 09:03:05 所属栏目:安全 来源:网络整理
导读:我试图将美丽的所见即所得Redactor( http://imperavi.com/redactor/)整合到一个定制的AngularJS指令中. Visualy它的工作,但我的自定义指令是不兼容的ng模型(我不明白为什么) 这是你如何使用我的指令: wysiwyg ng-model="edited.comment" id="contactEditCom
我试图将美丽的所见即所得Redactor(
http://imperavi.com/redactor/)整合到一个定制的AngularJS指令中.
Visualy它的工作,但我的自定义指令是不兼容的ng模型(我不明白为什么) 这是你如何使用我的指令: <wysiwyg ng-model="edited.comment" id="contactEditCom" content="{{content}}" required></wysiwyg> 这是指令码: var myApp = angular.module('myApp',[]); myApp.directive("wysiwyg",function(){ var linkFn = function(scope,el,attr,ngModel) { scope.redactor = null; scope.$watch('content',function(val) { if (val !== "") { scope.redactor = $("#" + attr.id).redactor({ focus : false,callback: function(o) { o.setCode(val); $("#" + attr.id).keydown(function(){ scope.$apply(read); }); } }); } }); function read() { var content = scope.redactor.getCode(); console.log(content); if (ngModel.viewValue != content) { ngModel.$setViewValue(content); console.log(ngModel); } } }; return { require: 'ngModel',link: linkFn,restrict: 'E',scope: { content: '@' },transclude: true }; }); 最后这是小提琴 – > http://fiddle.jshell.net/MyBoon/STLW5/
我根据Angular-UI的TinyMCE指令做了一个.这个也听格式按钮点击.当模型在指令之外更改时,它也处理这种情况.
directive.coffee(对不起,为coffeescript) angular.module("ui.directives").directive "uiRedactor",["ui.config",(uiConfig) -> require: "ngModel" link: (scope,elm,attrs,ngModelCtrl) -> redactor = null getVal = -> redactor?.getCode() apply = -> ngModelCtrl.$pristine = false scope.$apply() options = execCommandCallback: apply keydownCallback: apply keyupCallback: apply scope.$watch getVal,(newVal) -> ngModelCtrl.$setViewValue newVal unless ngModelCtrl.$pristine #watch external model change ngModelCtrl.$render = -> redactor?.setCode(ngModelCtrl.$viewValue or '') expression = if attrs.uiRedactor then scope.$eval(attrs.uiRedactor) else {} angular.extend options,expression setTimeout -> redactor = elm.redactor options ] HTML <textarea ui-redactor='{minHeight: 500}' ng-model='content'></textarea> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |