我希望编写一个 Angular 应用程序,它将Ace 编辑器与用于保存 + 撤消/重做的工具栏集成在一起。我已经创建了一个基本的plunk来开发这个应用程序。
正如您应该能够从 plunk 中看出的那样,有一个“工具栏”指令负责渲染工具栏(带有三个按钮:保存、撤消和重做)和一个“ace”指令负责渲染 Ace 编辑器。这两个指令都位于“directives.coffee”中。
工具栏的行为应该与您对文本编辑器工具栏的期望相同,即:
- 如果文档自上次保存后发生更改,则应启用保存按钮
- 单击保存按钮时,文档状态应更改为原始状态(即不脏),保存按钮应返回禁用状态
- 如果至少有一项可以撤消的操作,则应启用撤消按钮
- 单击撤消按钮时,应告知编辑器撤消上一次操作,并且应根据上述点更新撤消按钮
- 如果至少有一项操作可以重做,则应启用重做按钮
- 单击重做按钮时,应告知编辑器重做上一次操作,并按照上述要点更新重做按钮
所以我的问题是,如何设计 Ace 编辑器和应用程序工具栏之间的 Angular 绑定,以便满足上述规范?