2016-03-07 75 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找到。

让我知道你是否有任何问题!

相关问题