我知道这是不好的做法,具有比其他指令的任何地方DOM操作。但我不明白为什么在服务/工厂中进行DOM操作是一种糟糕的做法,因为我们可以重用它们。为什么DOM操作在AngularJs服务中不是首选?
我在网上搜索,也发现了计算器 stackoverflow question
,但仍无法与明确的答案同样的问题。
我知道这是不好的做法,具有比其他指令的任何地方DOM操作。但我不明白为什么在服务/工厂中进行DOM操作是一种糟糕的做法,因为我们可以重用它们。为什么DOM操作在AngularJs服务中不是首选?
我在网上搜索,也发现了计算器 stackoverflow question
,但仍无法与明确的答案同样的问题。
角如下declarative原理,这意味着
建筑的结构和计算机 程序-表达计算的逻辑,而不描述 其控制流程
在元件的样式同时介绍了在角度services
中包含业务逻辑。如果业务流程非常复杂 - 套件管理更好。
在,如果你有,你可能违反separation of concerns principle,因为你是耦合的UI和业务层服务DOM操作的方式。当这些“可重用”组件(根据新的要求)在集成的模块中应该看起来有点不同时,耦合本身最终会以spagetti-code结尾
根据定义,指令总是附加到DOM节点。所以当我们创建一个指令时,它会扩展或替换DOM节点。所以我们能够通过指令来操作视图应用程序的 服务与指令接合。但是,在某些情况下,您可能需要通过服务来操作DOM元素,就像在模式窗口中一样。 我有这样的情况下的经验法则。可以直接使用附加节点完成DOM操作?对这个问题的回答告诉我,如果我需要使用指令(是)或服务(否),但总体上还取决于项目的复杂性。