2015-10-05 45 views
0

我是AngularJS的新手。请参阅下面的代码并告诉我它在做什么。

$scope.$on('$viewContentLoaded', function(event) {}); 

如何在控制器中使用它来访问DOM?

$timeout(function() { }); 

我找的解释,例如如何在现实生活中,它做什么用$scope.$on()$timeout()

+0

不应该从控制器访问/操作DOM。 DOM访问和操作的唯一地方是'directive'中的'link'功能。 – Michael

回答

4

$scope.$on为作为第一个参数传递的事件注册侦听器,并在所述事件的每个实例上执行作为第二个参数传递的函数。 $broadcast$emit可用于发送自己的自定义事件。

$timeout可以代替setTimeout使用,但使用时无延迟参数来调用执行其回调函数之前只会等待下一次消化。

至于DOM操作,这不应该在一个标准的'jQuery像时尚'中进行。如果需要操作DOM,则可以定义自定义指令来封装此功能,并因此允许Angular框架管理其切分。

+3

'$ timeout'将在Angular生命周期内运行。如果你使用JS'setTimeout',你需要手动调用'$ scope.digest()'。 – Michael

+0

我是新的ng ...所以仍然不明白这个'$ scope。$在寄存器上,这个事件的监听器作为第一个参数传递,可以用一个简单的例子来解释它。谢谢 – Mou