2013-01-05 27 views

回答

3

你真的需要控制器的方法或范围吗?

的情况下,如果你需要范围的,你可以使用angular.element('#myid').scope().method

但是,请记住,没有检测范围的值进行任何修改,如果你做他们的AngularJS事件处理外,所以你需要用你的代码$应用范围的函数。

也请记住,在从JS AngularJS DOM修改一般都是“大不,不”

Ofcourse有控制器的功能(使用创建“this.xxx =功能()。”)。我不知道这是好事,访问他们,因为他们是那种私人的,但你应该能够访问同样的方式:元素(..)控制器()方法

2

它不正式支持。当然,从技术角度来讲,这可能是一些黑客行为,但JavaScript绑定事件处理程序意味着可以从控制器访问DOM元素,这违背了AngularJS的原则。

1

要稍微延长@ Valentyn的答案。如果你本来想访问控制方法(而不是$范围方法) - 例如,在控制器的构造函数与this定义的方法(对角首页,“标签”指令定义控制器上的功能“addPane”使用this) - 你可以使用

angular.element('#myid').controller().method() 
1

你可以,但你不应该。你可能会在路上遇到麻烦。

如果你可以给出更多的解释,为什么你想这样做,可能会有一个更好(更容易)的方法。

相关问题