dylike/meta.umeditor

编辑器初始化在数据返回之前

Closed this issue · 9 comments

1.譬如,在对论坛的帖子进行编辑时,数据通过请求接口之后返回的,这中情况下,初始化时,ng-model还是没有值的,这个该如何解决呢?
2.图片上传,这里能点开的时候,直接进入相册中选取,避免弹窗,这样就是极好的

你好,抱歉回复比较晚。

  1. 你的意思是说数据是通过ajax从后台获取的,页面初始化时ng-model默认是没有值?这个逻辑是对的,但需要解决什么问题呢?
  2. 因为我只是简单的封装了一下UMEditor的Angular 1指令,弹窗的过程均是UMEditor插件提供的 - -
    如果是指手机上的操作,希望直接进入相册选择图片,你可以查阅一下http://fex.baidu.com/ueditor/ UMEditor的官方文档,能否通过其提供的api直接控制执行“上传图片”逻辑,而不是弹窗。

值回显我解决了,通过监视ng-model的值变化,但是现在,如果是新增,外层控制器能实时的接收到文本的数,但是编辑的时候,外层接收到的就是上一次修改的

你这边是存在父子scope的嵌套么?
把你的代码放上来看一看?

我的场景是,进入一个页面,携带一个id,在一个控制器A里,放了这个编辑器B
如果id存在,在A控制器中向后台发起请求,将数据回显在编辑器B,编辑信息,B能实时获取到数据,但是A中的没有实时同步,点击保存按钮后,成功后,A中的数据变为最新【问题关键】
如果id不存在,就代表新增,此时新增数据,B中数据变化,A中能实时同步

我理解了,我尝试修改一下逻辑把,之前的逻辑太简单了,只考虑了UMEditor ready时,对ngModel的值做了一下处理。
你也可以看看源码,看能否解决?

你好,我已经更新了一个版本,重新梳理了一下ngModel与UMEditor内容之间的关联
你可以使用bower update meta.umeditor 尝试更新
看看能否修复你的问题 - -

好的,我晚上尝试一下

现在值是实时更新的,很不错,
1.但是个人建议这里要是不依赖jq更好,毕竟不是所有的项目会引入jq

<!-- 引入umeditor需要的jquery库文件 -->
<script src='/path/to/jquery'></script>
//监测是否需要placeholder
ctrl.checkPlaceholder = function () {
  var parent =angular.element('#' + attrs['id']).parent();
  if (ctrl.focus || ctrl.editorInstance.hasContents()) {
    parent.children('.metaUmeditorPlaceholder').remove();
  } else {
    parent.css('position', 'relative').append('<div class="metaUmeditorPlaceholder" style="position:absolute;top:0;left:0;padding:0 10px;line-height: 24px;color:#ccc">' + ctrl.placeholder + '</div>')
  }
};

2.那个斜体效果,点击没有反应,不知是我配置出了问题,还是什么原因
3.点击加粗、斜体、下划线,控制台会报错
image