我试图将角度小部件添加到现有的非角度应用程序中。问题是这些小部件不是由 Angular 添加的,并且大部分是通过非 Angular 脚本注入到 DOM 中的。
我想到的第一件事是angular.bootstrap用于每个小部件。但是这种方法的问题是我不能在小部件之间共享服务。因此,我不想这样做,而是想引导 Angular 应用程序一次,并为每个小部件手动加载控制器。
我正在尝试app1手动和app2自动制作,同时共享sharedThing服务。
我试图将角度小部件添加到现有的非角度应用程序中。问题是这些小部件不是由 Angular 添加的,并且大部分是通过非 Angular 脚本注入到 DOM 中的。
我想到的第一件事是angular.bootstrap用于每个小部件。但是这种方法的问题是我不能在小部件之间共享服务。因此,我不想这样做,而是想引导 Angular 应用程序一次,并为每个小部件手动加载控制器。
我正在尝试app1手动和app2自动制作,同时共享sharedThing服务。
好吧,我找到了我的答案。
我不知道我之前是否解决过它,但是我必须$apply在重新编译元素后调用以查看更改,而无需手动修改输入。此外,我发现我可以使用 DOM 之外的元素初始化 Angular 应用程序,并且可以编译根元素之外的元素!这非常适合我想要实现的目标。
在应用程序配置中
app.config(function($controllerProvider) {
app.register =
{
controller: $controllerProvider.register
};
}
然后在你声明控制器功能之后
app.register.controller('CtrlName',CntrlFn]);