【问题标题】:AngularJS file structure, directive and controller coupling: should a directive use an external controller?AngularJS 文件结构、指令和控制器耦合:指令应该使用外部控制器吗?
【发布时间】:2014-07-07 14:11:03
【问题描述】:

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

我会做以下事情:

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

这样我可以区分来自用户的事件(例如 add() 在内部调用 addTag())和来自代码的其他部分(例如在发生某些事情时内部调用 addTag() 的观察者)。

总结:

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

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

【问题讨论】:

    标签: javascript angularjs controller angularjs-directive file-structure


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 2014-01-03
      相关资源
      最近更新 更多