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