【发布时间】:2014-07-11 21:01:24
【问题描述】:
我刚刚开始使用 AngularJs 指令,使用资源 here、here 和 here。
我有一种情况,在加载所有指令后我需要做一些事情。
即
场景 1
- 控制器负载
- 指令 1 加载
- 指令 2 加载
- 最终事件触发(最好由控制器拾取)
场景 2
- 控制器加载
- 指令 1 加载
- 指令 2 加载
- 指令 3 加载
- 最终事件触发(最好由控制器拾取)
我似乎找不到“已加载指令”事件。通过搜索,我能找到的最好的是 SO post,(this answer 确实有效),但感觉就像是一种“广泛刷”的方法。
请问这样做的正确方法是什么?
如果需要,很乐意发布代码,但在这种情况下似乎没有用。
【问题讨论】:
-
很可能以错误的方式看待问题。
final event fires的用例是什么? -
您可以使用 $rootscope 广播或发出事件,任何侦听器都会收到您可以使用的消息,但是您想做什么?,我没有看到任何触发的特殊情况加载所有指令后的“加载事件”
-
我正在使用 SignalR 并尝试将所有内容分成“即插即用”风格的模块(使用角度指令来实现这一点)。在 SignalR 中,连接 start() 必须在最后发生,因为在连接启动后声明的任何内容都将被忽略。我的想法是每个指令将仅引用它需要的 signalR 集线器方法,但是将集线器拆分为单独的指令意味着我需要控制何时启动连接。即按照上面的加载顺序工作。如果我的方法有误,我很乐意考虑替代方案。
-
@HockeyJ 我也一直在使用 SignalR,根据我的经验,我可以建议将 signalR 客户端 (jQuery) 包装到服务中,并在控制器中使用该服务并从那里开始工作,您将能够实现相同的目标,请记住指令旨在操作 DOM,这是 github 上的一个示例(我没有使用该 repo),但只是为了了解一下github.com/JustMaier/angular-signalr-hub
-
您的第一个和第三个链接“资源”指向同一个网址:docs.angularjs.org/guide/directive ;)
标签: angularjs angularjs-directive angularjs-controller