我最近学到了很多关于递归指令的知识,但还有一些问题我还不明白。
特别是这篇文章解决了我的大部分问题:Angular指令中的递归(谢谢!!)
我已经根据这种技术构建了一个递归规则编辑器指令,可以完成我想要的大部分功能。它成功地编辑了描述处理消息规则的复杂JSON结构,允许您添加和删除层次结构并编辑值。
该指令旨在像这样简洁地实例化:
理想情况下,我希望这个指令可以作为表单的一部分来使用,并且能够进行验证。但是,我读到的所有内容都告诉我需要使用ngModel进行绑定。然而,示例和我的代码并没有使用ngModel,而是选择使用属性和本地隔离作用域。
我已经了解到使用隔离作用域的ngModel比较棘手(参见Isolated scope pitfall with ng-model dependency),并且使用ngModel的过程中遇到了一些问题,所以最终我只是在属性上使用双向绑定。
那么,如何为此元素添加必要的钩子,以便它向包含它的表单报告,从而可以使用Angular验证来呈现消息并启用/禁用提交按钮?
我相信我可以通过某种方式来完成这个hack,但我的主要动机是学习正确的方法,所以我在这里。
以下是我正在进行中的指令的plunkr:http://plnkr.co/edit/02b9zTS1O81wgVapn3eg?p=preview 有什么建议吗?
特别是这篇文章解决了我的大部分问题:Angular指令中的递归(谢谢!!)
我已经根据这种技术构建了一个递归规则编辑器指令,可以完成我想要的大部分功能。它成功地编辑了描述处理消息规则的复杂JSON结构,允许您添加和删除层次结构并编辑值。
该指令旨在像这样简洁地实例化:
<rule-element rule="<scope variable>"></rule-element>
理想情况下,我希望这个指令可以作为表单的一部分来使用,并且能够进行验证。但是,我读到的所有内容都告诉我需要使用ngModel进行绑定。然而,示例和我的代码并没有使用ngModel,而是选择使用属性和本地隔离作用域。
我已经了解到使用隔离作用域的ngModel比较棘手(参见Isolated scope pitfall with ng-model dependency),并且使用ngModel的过程中遇到了一些问题,所以最终我只是在属性上使用双向绑定。
那么,如何为此元素添加必要的钩子,以便它向包含它的表单报告,从而可以使用Angular验证来呈现消息并启用/禁用提交按钮?
我相信我可以通过某种方式来完成这个hack,但我的主要动机是学习正确的方法,所以我在这里。
以下是我正在进行中的指令的plunkr:http://plnkr.co/edit/02b9zTS1O81wgVapn3eg?p=preview 有什么建议吗?
script.js:113:9
中的controller
有一个拼写错误。 - mzulch