根据 AngularJS 模板选择性加载 javascript
Selective loading javascript depending the AngularJS template
我在单页网络应用程序中工作, 需要 user/password 保护。
模块将根据用户配置文件加载,以基于滚动的方式限制访问。
我正在使用 ng-view
加载与用户 ID 对应的模板。
如何有选择地加载模板控制器对应的 JavaScript 文件?
<script script src="restrictetd/path/MyAngularControl.js"></script>
如果用户无权访问特定模板,则下载 JavaScript 文件毫无意义。
非常感谢任何建议。
您的应用程序可能过于复杂了。除非你的应用程序非常庞大,否则如果你只将所有需要的 JavaScript 交付给客户,维护起来会更容易。不显示用户不应该执行的操作是客户端的工作,但实际执行该操作是服务器的工作。
但是做你想做的事是可以的。在路线中要做的第一件事是下载 JavaScript 文件和模板,但最初 return 没有路线或一些加载指示器。加载 JS 文件后,将脚本标记添加到 HEAD 或处理 JS 文件以加载它。然后加载模板并编译。
此过程的一个警告是不能使用新模块。我建议将任何 be 控制器/指令添加到您用于 ng-app 的模块中。可以在已经初始化的 Angular 应用程序中以这种方式定义新事物,但是您 不能 重新定义任何东西。因此,如果控制器 xyz
已经存在,并且您加载另一个控制器 xyz
,则第二次加载将不会执行任何操作。
我在单页网络应用程序中工作, 需要 user/password 保护。 模块将根据用户配置文件加载,以基于滚动的方式限制访问。
我正在使用 ng-view
加载与用户 ID 对应的模板。
如何有选择地加载模板控制器对应的 JavaScript 文件?
<script script src="restrictetd/path/MyAngularControl.js"></script>
如果用户无权访问特定模板,则下载 JavaScript 文件毫无意义。
非常感谢任何建议。
您的应用程序可能过于复杂了。除非你的应用程序非常庞大,否则如果你只将所有需要的 JavaScript 交付给客户,维护起来会更容易。不显示用户不应该执行的操作是客户端的工作,但实际执行该操作是服务器的工作。
但是做你想做的事是可以的。在路线中要做的第一件事是下载 JavaScript 文件和模板,但最初 return 没有路线或一些加载指示器。加载 JS 文件后,将脚本标记添加到 HEAD 或处理 JS 文件以加载它。然后加载模板并编译。
此过程的一个警告是不能使用新模块。我建议将任何 be 控制器/指令添加到您用于 ng-app 的模块中。可以在已经初始化的 Angular 应用程序中以这种方式定义新事物,但是您 不能 重新定义任何东西。因此,如果控制器 xyz
已经存在,并且您加载另一个控制器 xyz
,则第二次加载将不会执行任何操作。