【问题标题】:angularjs app design multiple instances of the same component (directive or directive+controller)angularjs app设计同一个组件的多个实例(指令或指令+控制器)
【发布时间】:2014-09-01 10:35:36
【问题描述】:

我的应用需要有多个管理复杂模型的组件实例。

为了显示模型和 UI/DOM 逻辑,包括带有子指令的模板,我创建了一个指令,

问题是对于每个模型/指令,我还需要一些业务逻辑,例如操作模型/从服务器检索其他数据等。我觉得将其包含在指令中是不对的。

一个示例可以是在屏幕上显示 10 个可见待办事项列表的应用。

我的问题是,如果指令和控制器从同一元素启动并共享同一范围以管理单个模型,那么在每个组件上都有一个控制器实例是否是个好主意?可能看起来像这样的东西:

<div class="todo-ui-directive" ng-repeat="todoList in lists" ng-controller="todoCtrl">
</div>

【问题讨论】:

  • 标记答案是否赞成?

标签: angularjs angularjs-directive angularjs-ng-repeat angularjs-controller


【解决方案1】:

您肯定希望使用服务来共享这样的业务逻辑。 您可以在指令中使用依赖注入来实现此目的:Injecting service to Directive

指令还可以创建控制器以在实例之间共享。您正在寻找的解决方案很有可能是两者的结合。 http://jasonmore.net/angular-js-directives-difference-controller-link/

【讨论】:

  • 谢谢,我的意思不一定是使用控制器检索数据,更像是从控制器调用请求,当然检索本身将使用服务进行。主要想法是我需要某个地方来放置我的业务逻辑..
  • 我听起来像一个指令控制器可能是你正在寻找的东西
  • 关于指令的控制器,我有些困惑。到目前为止,我的理解是此功能用于在不暴露范围的情况下为其他指令公开 API。这不是我真正需要的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-15
  • 1970-01-01
  • 2016-06-24
相关资源
最近更新 更多