2

假设我需要向我的网站添加一个类似于 StackExchange 提供的标签功能:我有一个输入栏,里面装满了选定的标签,当我输入一些内容时,会出现一个建议列表。很标准的东西。

我会做以下事情:

  • 创建标签模块
  • 添加一个标签控制器,它使用服务来获取标签,并声明像addTag, removeTag, findSimilarTags, .. 这样的方法 --> 即它使用$scope模型数据
  • 添加一个带有指定我的 Tag 模块布局的模板的指令,以及调用控制器方法的方法,例如add(), remove(), ..

通过这种方式,我可以区分来自用户的事件(例如add()内部调用addTag())和代码的其他部分(例如,addTag()发生某事时内部调用的观察者)。

总之:

  • 控制器:处理来自模型的数据(例如使用服务)
  • 指令:处理 DOM 操作和事件,使用控制器完成实际工作

这有意义吗?为什么Google将指令与控制器完全分开?指令是否应该更加“智能”并直接处理数据?

4

1 回答 1

0

顾名思义,指令。它们用于对数据进行一些操作并将其发送回控制器。它与函数非常相似。指令用于更好的代码模块化。它从控制器中删除非结构化代码。ya 指令也可以直接处理数据,但它没有被应用。

于 2014-07-07T15:02:39.670 回答