2016-03-07 76 views
0

我正在研究Django應用程序並使用angular作爲前端。我想創建一個s.p.a.使用路線。但是我無法訪問模板,因爲它們位於模板文件夾中。我的目錄結構是這樣的:如何在django應用程序中訪問angularjs中的模板?

root 
|-- templates 
| |-- index.html 
| |-- view1.html 
| |-- view2.html 
|-- static 
    |-- app.js 
    |-- angular.js 
    |-- angular-route.js 

我是angularjs的新手,所以請在你的答案中描述。 我無法更改目錄結構,
或者如果我正在使用渲染到字符串,那麼如何使用api調用來加載視圖,這會在頁面加載時返回我的html?

回答

0

Django templates!=角模板。不要混合它們。從Django的角度來看,角模板是靜態文件;將它們保存在靜態文件夾中。

0

如果可以的話,我會建議將你的Angular應用程序從你的Django應用程序中分離出來。首先,如果您還沒有這樣做,請了解REST API端點,並使用Django REST框架或類似的庫來通過REST API端點顯示應用程序的數據。這允許您通過訪問Django開發服務器上的URL來獲取數據,而不必通過Django模板引擎提供服務,這正是我假設您目前正在執行的操作。喜歡的東西:

http://localhost:8000/api/users/

將返回用戶的列表,看起來像:

[{ 
    username: 'Bob' 
    email: '[email protected]' 
}, { 
    username: 'George', 
    email: '[email protected]' 
}] 

然後,你可以使用類似於http通過其他開發服務器服務於你的角度應用程序作爲一個靜態文件通過節點的服務器。

現在您的角度應用可以通過​​提供,您的django應用可以通過http://localhost:8000/提供。您的角度應用程序的數據現在嚴格通過HTTP調用進行訪問,這些調用將以前交織在一起並且損壞的框架解耦。

這允許您使用angular的模板引擎,而不是試圖跟蹤您的模板文件通過您的Django服務器提供的位置。因此,對於角您的文件夾結構看起來像:

app 
|-- index.html (includes your main angular application) 
|-- templates/ (templates here) 
|-- app/ (app files here) 

這雖然只是一個例子,對如何編寫和組織您的應用程序,這是我覺得有用的良好來源,可以在https://github.com/johnpapa/angular-styleguide找到。

讓我知道你是否有任何問題!

相關問題