Angular js从一个页面调用另一个页面的方法
Angular Js calling method of one page from another
有什么方法可以让一个函数出现在一个页面上,并在该页面上的自定义指令链接的其他页面的任何事件成功时执行??
场景:我有一个页面,其中的网格具有不同的列,以及一个自定义指令,通过该指令我通过打开特定于该行的模式弹出窗口来编辑数据,现在我想在父页面上调用一个方法来验证新值如果不正确,最后的 'Submit' 按钮将被禁用,否则自动启用。
非常感谢您的帮助,我厌倦了将方法传递给自定义指令,但它没有用。
您可以试试 $emit
和 $broadcast
服务:
$emit
它通过作用域层次结构向上调度一个事件名称,并通知已注册的 $rootScope.Scope 侦听器。事件生命周期从调用 $emit 的范围开始。该事件向上遍历到根作用域,并沿途调用所有已注册的侦听器。如果其中一位侦听器取消事件,事件将停止传播。
$广播
它向下派发一个事件名称到所有子作用域(及其子作用域)并通知已注册的 $rootScope.Scope 侦听器。事件生命周期从调用 $broadcast 的范围开始。此范围内事件的所有侦听器都会收到通知。之后,事件向下遍历到子作用域,并沿途调用所有已注册的侦听器。活动无法取消。
$on
它侦听给定类型的事件。它可以捕获 $broadcast 和 $emit 派发的事件。
演示工作代码,直观地显示作用域树(parent/child 关系):
http://plnkr.co/edit/0kUXvoRkPPNJpQ2C2xWU?p=preview
有什么方法可以让一个函数出现在一个页面上,并在该页面上的自定义指令链接的其他页面的任何事件成功时执行??
场景:我有一个页面,其中的网格具有不同的列,以及一个自定义指令,通过该指令我通过打开特定于该行的模式弹出窗口来编辑数据,现在我想在父页面上调用一个方法来验证新值如果不正确,最后的 'Submit' 按钮将被禁用,否则自动启用。
非常感谢您的帮助,我厌倦了将方法传递给自定义指令,但它没有用。
您可以试试 $emit
和 $broadcast
服务:
$emit
它通过作用域层次结构向上调度一个事件名称,并通知已注册的 $rootScope.Scope 侦听器。事件生命周期从调用 $emit 的范围开始。该事件向上遍历到根作用域,并沿途调用所有已注册的侦听器。如果其中一位侦听器取消事件,事件将停止传播。
$广播
它向下派发一个事件名称到所有子作用域(及其子作用域)并通知已注册的 $rootScope.Scope 侦听器。事件生命周期从调用 $broadcast 的范围开始。此范围内事件的所有侦听器都会收到通知。之后,事件向下遍历到子作用域,并沿途调用所有已注册的侦听器。活动无法取消。
$on
它侦听给定类型的事件。它可以捕获 $broadcast 和 $emit 派发的事件。
演示工作代码,直观地显示作用域树(parent/child 关系):
http://plnkr.co/edit/0kUXvoRkPPNJpQ2C2xWU?p=preview