我需要建立一个对话框来与项目列表中的任何项目一起使用。该对话框与项目无关,几乎相同,只是字段的值显然与项目相关。
我正在构建的指令正在从文件中读取模板,使用$ compile对其进行编译,然后将其绑定(链接)到该项目的范围。绑定的结果是一棵DOM树。为了使对话框可见,我需要将此树附加到现有DOM中的某些元素上。对话框的性质使得将其直接附加到body标签是有意义的。该对话框将与列表中的不同项目一起多次使用
所以这是我的问题:可以预先完成多少个过程(编译,绑定,追加)?我当然可以运行一次编译。我还可以将编译结果绑定到$ rootscope并将其追加(隐藏)到body标签。这样,以后我可以打开可见性并显示对话框。
但是,如果它已经绑定并附加到DOM,是否可以将其重新绑定到其他作用域?如果是的话,正确的方法是什么?另一个问题是值得吗?可能只是在需要时重新插入它?
我认为这是一个很好的问题。您想知道是否可以“热交换”元素的范围。我不知道是否有办法做到这一点,或者即使有,这也是Angular的方式。我认为您了解了ng- view如何发挥作用,达到了您的目标?
我的建议是在某个地方进行一次$ compile,保留结果,链接或包含函数或Angular所谓的任何内容。并为对话框的每个所需实例调用它。