2014-09-10 54 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