【问题标题】:Incorporate AngularJS into existing modular application将 AngularJS 合并到现有的模块化应用程序中
【发布时间】:2013-04-30 20:40:08
【问题描述】:

我正在尝试找到将 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;
    };
});

有什么想法吗?谢谢!

【问题讨论】:

    标签: angularjs module


    【解决方案1】:

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

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

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

    查看角度控制器以获取更多信息。但正如我所说,我建议让应用程序完全是 Angular 的,而不是试图只是向它添加 Angular 位

    【讨论】:

      【解决方案2】:

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

      您可以直接使用它,也可以像第 7 步那样通过模块化来开始扩展它。通过创建module,您可以添加指令和服务并利用 Angular 提供的所有功能。您不一定需要配置路由或任何东西,但通过创建应用模块,您可以整合整个网络或 Angular 提供的其他模块或服务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-08
        • 2015-09-07
        • 1970-01-01
        • 1970-01-01
        • 2014-02-15
        • 2011-07-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多