2014-02-28 59 views
0

我試圖將角度小部件添加到現有的非角度應用程序中。問題在於這些小部件不是由Angular添加的,並且大部分都是通過非角度腳本注入到DOM中的。如何在應用程序啓動後手動初始化控制器?

我認爲的第一件事就是使用angular.bootstrap爲每個部件。但是這種方法的問題是我不能在小部件之間共享服務。因此,我不想這樣做,我想引導一次Angular應用程序,併爲每個小部件手動加載控制器。

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

我試圖做手工app1app2自動,而共享sharedThing服務。

回答

0

在應用程序配置

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

+0

我讀過那篇文章,但它只是談到如何動態地通過路由負載控制器,這不是我想要做的事。但是,謝謝。 – Zequez

0

嗯,我找到了我的答案。

我不知道我以前是否解決過這個問題,但是在重新編譯元素以查看更改而不手動修改輸入之後,我不得不打電話給$apply。此外,我發現我可以使用DOM外部的元素初始化角度應用程序,並且可以編譯根元素之外的元素!這對於我試圖達到的目標來說是完美的。

Anyway, here is the jsBin with the code working.

相關問題