AngularJS:如何在一个有角度的应用程序中嵌套应用程序

前端之家收集整理的这篇文章主要介绍了AngularJS:如何在一个有角度的应用程序中嵌套应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在一个项目,更像一个框架,并有几个应用程序/模块,你可以安装。查看它像一个基本的appstore或google.play商店。它是一种内部网应用程序,所有模块都可以添加到您的用户帐户。

该框架已经在开发中,但我现在围绕应用程序/模块的想法。 (link to a proof of concept in development,can be found here)

应用程序应该有些独立,并且不能突然包括来自框架的脚本。这是完全可能的,通过在单独的模块中构造它们,如:

angular.module('myApp',[]);

然而,一个应用程序可以有模板,脚本,CSS和它可以运行在一个单独的服务器,所以我在寻找最好的方法获取脚本和CSS文件,并动态加载到应用程序当用户从框架内启动应用程序时。

>目前我的结构化应用程序,如果他们有一个主要的模板,例如www.framework.com/apps/myapp/views/app.html,为了简单,我把脚本捆绑到每个应用程序的1个脚本文件,所以有还包括一个www.framework.com/apps/myapp/script.js。

框架包含一个加载应用程序的模板和一个appController。模板包含此片:

<div data-ng-controller="AppController" data-ng-include="app.appTemplate">
    <div>loading...</div>
</div>

这基本上绑定到$ scope.app.appTemplate,它会在所有脚本加载时更新,因此首先它显示一个加载模板,稍后在脚本包含在页面中后,将app.appTemplate更新到上述主模板应用。

而加载第一个索引模板的工作,这个模板当前加载的AppController从框架,所以它使用框架的$范围,而不是自己的脚本。

我仍然不得不以某种方式启动应用程序自己的角模块,并让它自己的没有在框架中运行任何东西,使“工作”

我仍然在弄明白如何最好地加载依赖的javascript文件(可能会使用requrejs或其他依赖加载器),但我目前没有线索如何“启动”应用程序,而不是从框架的AppController

编辑

我创建了一个小的演示项目来显示手头的问题,full code is visible at git-hub目前这个项目做了一些硬编码,这个想法是,我使那些较少的硬编码,当我得到的概念的证明,现在,在框架内加载应用程序。如果这是可能的,我可以想到在哪里获得URL和应用程序名称从…

您无法在另一个自举模块中引导模块。 Bootstrapping编译视图并将一个rootScope绑定到它,遍历它的方式通过DOM和设置范围绑定和执行指令链接函数一直通过。如果你这样做了两次,你会遇到问题。

你可能要重新思考你的架构。我认为或许“模块”或“应用程序”这个词,它属于Angular是一个misnomer,并导致你走错路径。

应用程序中的每个“用户安装的应用程序”应该实际上由应用程序模块中的控制器控制,或者注册到应用程序模块引用的模块。所以你不会“启动多个应用程序”,你真的只是一个启动,引用其他模块,然后使用控制器从这些模块控制在屏幕上的部分视图。

你会做的是当一个新的“小部件”安装,你注册它的模块文件(.js)与系统,将包含一个控制器WidgetCtrl,然后当你的页面加载,你将引用该小部件模块。从那里它应该可用于使用ng-controller和/或ng-include动态分配给元素。

我希望这是有道理的。

猜你在找的Angularjs相关文章