Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据AngularJS模板选择性加载javascript_Javascript_Angularjs_Ngroute_Ng View - Fatal编程技术网

根据AngularJS模板选择性加载javascript

根据AngularJS模板选择性加载javascript,javascript,angularjs,ngroute,ng-view,Javascript,Angularjs,Ngroute,Ng View,我在一个单页web应用程序中工作,witch需要用户/密码保护。 模块将根据用户配置文件加载,以基于滚动的方式限制访问 我正在使用ng view加载与用户id对应的模板 如何有选择地加载模板控制器的相应JavaScript文件 如果用户无法访问特定模板,那么下载JavaScript文件就没有意义 非常感谢您的建议。您的应用程序可能过于复杂了。除非您的应用程序非常庞大,否则如果您只需将所需的所有JavaScript交付给客户端,那么维护起来就更容易了。客户端的任务是不显示用户不能执行的操作,而服务

我在一个单页web应用程序中工作,witch需要用户/密码保护。 模块将根据用户配置文件加载,以基于滚动的方式限制访问

我正在使用ng view加载与用户id对应的模板

如何有选择地加载模板控制器的相应JavaScript文件

如果用户无法访问特定模板,那么下载JavaScript文件就没有意义


非常感谢您的建议。

您的应用程序可能过于复杂了。除非您的应用程序非常庞大,否则如果您只需将所需的所有JavaScript交付给客户端,那么维护起来就更容易了。客户端的任务是不显示用户不能执行的操作,而服务器的任务是实际执行这些操作

然而,做你想做的是可能的。在路由中要做的第一件事是下载JavaScript文件和模板,但让路由最初不返回任何内容或一些加载指示器。加载JS文件后,将脚本标记添加到头部或处理JS文件以加载它。然后加载模板并编译它


这个过程的一个警告是不能使用新的模块。我建议在您用于ng应用程序的模块中添加任何be控制器/指令。在已经初始化的Angular应用程序中,新事物可以通过这种方式定义,但是您不能重新定义任何东西。因此,如果控制器xyz已经存在,而您加载另一个控制器xyz,则第二次加载将不会起任何作用。

如果您可以将脚本的使用限制在某个条件下,您可以使用ng包装脚本,如果我认为ng只是隐藏了标记,但不会阻止它下载。我认为您是对的,也许我的应用程序过于复杂了,但我担心用户阅读部分他们不应该访问的代码。访问代码不应该允许任何不好的事情发生,服务器应该阻止任何未经授权的操作。不给他们最初的来源并不意味着他们不能得到它的另一种方式。所有的脚本文件仍然需要在代码中的某个地方列出,他们可以直接下载这些文件。我会听从你的建议。非常感谢你