2014-09-10 35 views
0

我不是构建传统的SPA,而是页面生成服务器端。但我确实有一个角度的应用程序,我将其导入到我的网站上的所有网页中。例如:角避免不必要的依赖注入

var app = angular.module('app',['ui.bootstrap', 'ngTable','textAngular']); 

一个非常简单的问题,但我一直没问谷歌的权利问题(S)来寻找答案。并非我所有的页面都需要textAngular,但我的Angular应用程序不会加载,除非我将该脚本导入到每个页面。避免这个问题的最佳做法是什么?

+0

作者:“page”你是指角度路线还是从你的服务器加载的实际页面? Angular创建单页面应用程序,因此您应该有一个页面确实需要所有的依赖关系。在需要时,Angular会照顾懒惰地装载模块。 – rob 2014-09-10 18:57:29

+0

好点。不幸的是,我不是在建造SPA。我从服务器端填充模板,并指向此处的单独页面。 – That1guyoverthr 2014-09-10 19:14:32

+0

啊我明白了。你可以做一些事情,比如为每个页面创建一个单独的模块,然后只加载需要的内容。 – rob 2014-09-10 19:16:46

回答

0

您不需要在每个页面中加载脚本。通常,Angular用于SPA web应用程序(单页应用程序)的上下文中。这意味着您只有一个页面(index.html),并且您使用路由来更改当前视图。如果应用程序中的某个模块需要此功能,则应该在index.html中引用该脚本。

如果您使用的是服务器生成的页面(使用ASP .NET,PHP等),您可以为每个页面添加脚本引用,但不是通常使用Angular的方式。 (它被称为迷你spa应用程序)。如果这是您的场景,您只需在需要使用它的页面上引用textAngular的脚本(并在模块声明中定义依赖关系)。

+0

应该指定不建造SPA。页面不幸生成服务器端。你提到过“......你只需要在需要使用它的页面上引用textAngular的脚本(并在模块声明中定义依赖关系)”,这会导致我崩溃,如下所示:Uncaught Error: [$ injector:modulerr] http://errors.angularjs.org/1.2.24/$injector/modulerr?p0=htsApp&p1=Error%3A...20c%20(http%3A%2F%2Flocalhost%3A8081%2Fangular%2Fangular .min.js%3A18%3A170) – That1guyoverthr 2014-09-10 19:17:53

+0

你有没有textAngular不需要的一些服务器页面的例子?您不包括脚本引用,并且在应用程序模块声明中不包含textAngular依赖项,是吗? – andybn 2014-09-10 20:35:15