需要澄清编辑器

时间:2015-10-26 10:55:25

标签: angularjs angularjs-directive angularjs-service

已编辑:试图简化发布

我需要使用以下基本(典型)功能创建一个简单的github风格的markdown“编辑器”

  1. 显示已转换的降价文字的预览面板
  2. 水平夹具,可以调整textarea的大小。
  3. 带有分组按钮的工具栏,可通过点击或热键访问。与编辑器工具栏一样,某些按钮会立即执行文本操作(例如,包装或展开选定的文本或从行的开头插入/删除),而在其他情况下,显示一个对话框收集一些数据,然后插入适当的文字。
  4. 在过去的两周里,我一直在努力想出一个能够正确满足这些要求的架构(控制器/服务/指令)。

    在我遇到的所有问题中,我认为问题归结为三个问题

    1. 需要什么? 控制器?指示?服务?组合?每个的多个?
    2. 什么地方? 超越基本的“控制器不应该做DOM操作”或“服务是单身”。例如,我很确定每个工具栏按钮都会表示为一个指令......但操作textarea内容的函数在哪里?
    3. 应该用什么来控制所有这些(即父母)? 最终,页面上的标记是指令,它又会实例化一个或多个控制器,服务和其他指令吗?
    4. 正如我所看到的,让我感到困惑的驱动因素是我会在页面上有多个“编辑器”(即textareas),每个都有自己的工具栏,预览面板和尺寸大小。

      然而,我怀疑,正确的方法是在单个对象(服务?)中使用批量功能。例如,如果函数被赋予任何文本片段,它应该能够包装,展开和确定选择的状态(即工具栏按钮应显示为活动/非活动状态)用于加粗目的的双星号文本。

      这意味着每个textarea以及相应的工具栏按钮都是他们自己的某些实例,但仍然能够调用单个对象(服务?)传递适当的参数以进行文本内容操作。

      如果我用C#或简单的javascript写这个,我会有一个父类(比如编辑器)和支持类(可能其中一些作为内部)(Say Toolbar,ToolbarButton,PreviewPanel等)并创建实例每个编辑器实例的每个类

      也许我的问题很简单,因为无法将该设计转化为角度世界......

      我希望能够帮助/洞察任何资源/代码片段/建议,了解每个功能应该呈现为什么(指令/服务/控制器)以及所有这些子组件如何/应该由单个父代实例化他们如何相互沟通。我已阅读(或尝试阅读)基本文档,我已经搜索过,但几乎所有我发现的内容都是直接的API参考资料(角度文档)或相当简单的例子。

      感谢。

0 个答案:

没有答案