我一直在做一个更像框架的项目,并且有几个可以安装的应用程序/模块。将其视为基本的应用商店或 google.play 商店。它是一种内部网应用程序,所有模块都可以添加到您的用户帐户中。
该框架已经在开发中,但我现在正在考虑应用程序/模块的想法。(链接到开发中的概念证明,可以在这里找到)
应用程序应该有点独立,并且不能突然包含框架中的脚本,这完全可以通过将它们构建在单独的模块中来实现,如下所示:
angular.module('myApp', []);
但是,一个应用程序可以有模板、脚本、css,它可以在单独的服务器上运行,所以我正在寻找获取脚本和 css 文件并将它们动态加载到应用程序中的最佳方法当用户app
从框架内启动时。
- 目前我正在构建应用程序,就好像它们有一个主模板一样
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
,所以它使用的$scope
是框架的而不是它自己的脚本。
我仍然必须以某种方式启动应用程序自己的角度模块,让它自己运行,而不在框架中运行任何东西来“让它工作”
我仍在研究如何最好地加载依赖的 javascript 文件(可能会使用 requrejs 或其他依赖加载器),但我目前不知道如何在不从框架内部工作的情况下“启动”应用程序AppController
编辑
我创建了一个小型演示项目来展示手头的问题,在 git-hub上可以看到完整的代码,目前这个项目做了一些硬编码的事情,我的想法是当我得到证明时我会减少那些硬编码正确的概念,现在都是关于在框架中加载应用程序。如果可能的话,我可以考虑从哪里获取 URL 和应用程序名称......