0

我这里有一个理论案例,嗯,对我来说是一个实际案例,这就是我现在正在做的事情。

我有一个 SPA,有很多部分(3 atm),我有一个菜单,它会经历不同的状态,我这样做是为了让整个网站有一种流畅的感觉,菜单元素起初是一个小动画,最好是这样:

  1. 菜单起初是一个动画,它在我的根模板上做了一些事情
  2. 菜单变成了一个动作按钮,你可以按下它来进入实际的主页(不完全是,当你打开它或按下一些按钮时,它仍然有一些简洁的动作)
  3. 在主页上,菜单再次更改状态,因此它是一个正常的站点菜单。

我在所有页面上都保留相同的元素,以便体验流畅。

菜单更改类,每个类都有它的动画层和可能的操作。

在这种情况下,对菜单使用指令会更好吗?

我想知道的是,如果我从中制作指令,我可以使用指令内控制器的命令来更改其状态吗?或者逻辑应该在指令中(例如检测女巫控制器是否处于活动状态并采取适当的措施?)

我的印象是我在stackoverflow上提出了很多关于我的这些问题的可能愚蠢的问题:),但我真的想做正确的事情,目前我对每个控制器的菜单进行DOM操作不同的点击和其他事件,它可以工作,但我认为它无法正确维护,我必须更改三个控制器中的东西(在这个阶段,也许以后会有更多)以对外观和感觉进行一些更改。

JSFiddle 是不可能的,有很多代码。

4

1 回答 1

2

指令可以与其父控制器共享状态,因此通信不是问题。如果您需要更多的解耦,您可以使用广播(尽管这是非常有争议的事实)。但是我不会使用指令,除非你在不同的地方重用它或者通过分离它的逻辑你最终得到更易于管理/可读的代码。换句话说,我的指令往往与一个“关注”有关,而不是很多小东西。在其他指令中包含指令并嵌入内容是很常见的。我更喜欢在指令中做 DOM 的事情,你可以用compileand很好地控制它link,所以如果我有一个组件做很多繁重的 DOM 事情(事件侦听器、DOM 操作),我倾向于在指令中移动代码。我也喜欢<my-foo-directive>标签在模板中弹出并抽象/简化它们。

于 2013-09-07T11:26:19.053 回答