如何使用javascript绑定Angular的控制器函数
AngularJS中是否有一种方法可以仅使用Javascript而不是使用ng-*标记以编程方式绑定控制器方法 差不多如何使用javascript绑定Angular的控制器函数,javascript,angularjs,Javascript,Angularjs,AngularJS中是否有一种方法可以仅使用Javascript而不是使用ng-*标记以编程方式绑定控制器方法 差不多 $("#foo").click(FooController.foo) 附:我没有权限访问$compile,它没有官方支持。当然,这在技术上是有可能的,但从JavaScript绑定事件处理程序意味着从控制器访问DOM元素,这违反了AngularJS的原则。这是不受官方支持的。当然,这在技术上是可能的,但从JavaScript绑定事件处理程序意味着从控制器访问DOM元素,这违反了
$("#foo").click(FooController.foo)
附:我没有权限访问$compile,它没有官方支持。当然,这在技术上是有可能的,但从JavaScript绑定事件处理程序意味着从控制器访问DOM元素,这违反了AngularJS的原则。这是不受官方支持的。当然,这在技术上是可能的,但从JavaScript绑定事件处理程序意味着从控制器访问DOM元素,这违反了AngularJS的原则。您真的需要控制器的方法还是范围 如果您需要范围,可以使用angular.element'myid'.scope.method 但请记住,如果您在AngularJS事件处理之外对作用域的值进行任何修改,都不会被检测到,因此您需要将代码包装到作用域的$apply函数中 还请记住,在AngularJS中,来自JS的DOM修改通常是不重要的
当然,有一些控制器的函数是使用这个函数创建的。xxx=函数。。。我不确定访问它们是否好,因为它们是私有的,但您应该能够以相同的方式访问:元素…控制器。方法您真的需要控制器的方法还是范围 如果您需要范围,可以使用angular.element'myid'.scope.method 但请记住,如果您在AngularJS事件处理之外对作用域的值进行任何修改,都不会被检测到,因此您需要将代码包装到作用域的$apply函数中 还请记住,在AngularJS中,来自JS的DOM修改通常是不重要的
当然,有一些控制器的函数是使用这个函数创建的。xxx=函数。。。我不确定访问它们是否有好处,因为它们有点私有,但您应该能够以相同的方式访问它们:元素…controller.method在某种程度上扩展@Valentin的答案,如果您想访问controller方法而不是$scope方法-例如。,在Angular主页上的控制器构造函数中定义的方法,tabs指令定义控制器上的函数addPane,使用它-您可以使用
angular.element('#myid').controller().method()
为了在某种程度上扩展@Valentin的回答,如果您希望访问控制器方法而不是$scope方法,例如,在Angular主页上的控制器构造函数中使用此方法定义的方法,则tabs指令使用此方法定义控制器上的函数addPane,您可以使用
angular.element('#myid').controller().method()
你可以,但你不应该。你很可能会在路上遇到麻烦
如果你能解释一下为什么要这样做,也许有更好更简单的方法。你可以,但不应该。你很可能会在路上遇到麻烦 如果你能解释一下为什么要这么做,也许有更好更简单的方法