应用程序启动后如何手动初始化控制器?

时间:2014-02-28 17:56:19

标签: angularjs angularjs-controller angularjs-bootstrap

我尝试将角度小部件添加到现有的非角度应用中。问题是这些小部件不是由Angular添加的,而是通过非角度脚本注入DOM。

我想到的第一件事就是为每个小部件使用angular.bootstrap。但这种方法的问题是我不能在小部件之间共享服务。因此,我想要引导Angular应用程序一次,而不是这样做,而是为每个小部件手动加载控制器。

Here is a sandbox jsbin where I've been trying stuff without success

我正在尝试手动设置app1并在共享app2服务时自动sharedThing

2 个答案:

答案 0 :(得分:0)

在app config中

app.config(function($controllerProvider) {
app.register =
    {
        controller: $controllerProvider.register

    };
}

然后声明控制器功能 app.register.controller('CtrlName',CntrlFn]);

丹写了一篇很棒的文章。 http://weblogs.asp.net/dwahlin/archive/2013/05/22/dynamically-loading-controllers-and-views-with-angularjs-and-requirejs.aspx

答案 1 :(得分:0)

好吧,我找到了答案。

我不知道我之前是否解决了这个问题,但是在重新编译元素之后我不得不调用$apply来查看更改,而无需手动修改输入。此外,我发现我可以使用DOM外部的元素初始化角度应用程序,我可以编译根元素之外的元素!这对我想要达到的目标来说是完美的。

Anyway, here is the jsBin with the code working.