指令及其定义方式始终附加在DOM节点上。因此,当您定义指令时,它会“扩展”或替换其所连接的DOM节点。
在某些情况下(例如对话框),您将无法将DOM节点附加到任何特定的父节点。在这些情况下,使用服务是有道理的,并且控制器仍可以保留在DOM位之外,因为DOM操作将封装在服务中。
弹出窗口可能是我们可能使用服务的另一种情况,但是与对话框不同,弹出窗口IS附加到DOM节点。因此,即使那只是一个灰色区域。
因此,一个基本而简单的测试是:“可以将这部分DOM操作代码附加到DOM节点吗?” 如果是,则执行指令。如果否,则服务。
对话框和自定义确认框是使用服务的典型示例。



