将AngularJS合并到现有的模块化应用程序中

时间:2013-05-07 01:26:49

标签: angularjs module

我正在尝试找到将AngularJS合并到现有应用程序中的方法。应用程序是模块化的,因此每个模块都有HTML标记和JS脚本文件。模块加载了requirejs和jQuery(用于加载标记)。

我想在一些模块中使用AngularJS功能,考虑到将来迁移到AngularJS的可能性。理想情况下,我想要这样的事情:

define([ 'angular' ], function (angular) {
    return function (element) {
        // The "element" parameter contains the reference to
        // the detached DOM node that contains the markup.
        // And what I think should be done is compiling
        // or initializing AngularJS with the given DOM HTML fragment
        // and with controller, etc.
        angular.doSomething(element, ...something...);
        // The application module engine will inject the returned element
        // into the DOM tree.
        return element;
    };
});

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:3)

只需按照本教程,特别是第2步(http://docs.angularjs.org/tutorial/step_02)将向您展示如何在页面上执行一个具有一些简单功能的控制器。

您可以使用它,或者您可以通过按照步骤7中的模块化来开始扩展它。通过创建module,您可以添加指令和服务并利用Angular提供的所有功能。您不一定需要配置路由或任何东西,但通过创建应用程序模块,您可以整合Web或Angular提供的其他模块或服务。

答案 1 :(得分:1)

AngularJS的设计并不是真正与其他框架一起运行,而是用于一点点零碎。你可以一起破解它,但它可能会变得非常混乱。 Angular更适合成为整个应用程序的基础。

像jQuery这样的东西很适合放入应用程序并添加功能,但角度要复杂得多。

如果您确实希望角度控制某些部分,请查看ng-controller指令及其工作原理。然后在标准标记中,您只需将ng-controller属性添加到任何元素,然后向您的javascript添加一个新的角度控制器。然后它将管理该DOM元素。

查看角度控制器以获取更多信息。但正如我所说,我建议将应用程序完全设置为Angular,而不是仅仅尝试添加角度位