Angularjs 如何控制和应对ngapp以外的事件

Angularjs 如何控制和应对ngapp以外的事件,angularjs,Angularjs,我正在尝试在SharePoint上构建一个angular应用程序(不过这个问题与SharePoint无关) 我有一个页面,其中有一个div,其中有angular应用程序指令(它是一个带有一堆文本框的表单)。页面上有其他组件,它们位于类似于ngapp的Ribbon控件之外,我没有对其进行控制 通常,如果它是jquery应用程序,我会编写document.ready函数,并使用SharePoint javascript api将自定义组件添加到功能区,并连接任何所需事件,如保存、取消 如果可能的话,

我正在尝试在SharePoint上构建一个angular应用程序(不过这个问题与SharePoint无关)

我有一个页面,其中有一个div,其中有angular应用程序指令(它是一个带有一堆文本框的表单)。页面上有其他组件,它们位于类似于ngapp的Ribbon控件之外,我没有对其进行控制

通常,如果它是jquery应用程序,我会编写document.ready函数,并使用SharePoint javascript api将自定义组件添加到功能区,并连接任何所需事件,如保存、取消

如果可能的话,我想使用angularjs完成类似的工作。问题是,由于它们位于ngapp之外,我不知道如何初始化和连接事件

具体来说,我想知道如何完成以下任务

a) 初始化位于ngapp外部的功能区按钮。我无法控制html的细节。我只能告诉api在ready上添加一个按钮。简而言之,我想在dom准备初始化驻留在ngapp之外的一些UI控件时调用一些代码

b) 当用户点击该按钮时,我希望我的应用程序对此做出反应

我想知道这是否可能

例:


//一些我没有直接控制权的区域,但我想
//初始化事件并对事件作出反应
先确定第一件事。 1初始化ribons按钮的方法与使用angular应用程序的方法相同,如果需要,可以使用jquery,jquery和angular可以很好地配合使用,因此不会造成任何伤害 除了在按钮事件中添加这种代码的和平

如果使用jquery

var rootScope=angular.element($('[ng-app]')[0]).scope()
这将为您提供应用程序的根范围,如果您希望将值传递给应用程序,则可以将值附加到根范围或使用

rootScope.$broadcast() 
要在任何情况下广播事件,请始终记住使用

rootScope.$apply()
否则,angular将不会立即意识到这些变化

还有其他方法,使用app injector获取服务或价值,并在那里进行更新, 您还可以设置本地存储值,并让用户监视这些值。但firs方法是最具挑战性的

rootScope.$apply()