在AngularJs routeProvid中使用Django url

2024-09-30 22:15:45 发布

您现在位置:Python中文网/ 问答频道 /正文

对于一个项目,我在后端使用Django,在前端使用AngularJs。在

基本上,我想要的是只在url以projectkeeper/开头时运行Angular应用程序。在

换句话说,假设我的网站是example.com网站. 我希望angular应用程序运行于url example.com/projectkeeper/dashboard/example.com/projectkeeper/projects/等等,但不是example.com/about/。在

希望我已经说清楚了。无论如何,为了做到这一点,我正在使用我的代码执行以下操作:

网址.py

urlpatterns = [
    url(r'^projectkeeper/$', TemplateView.as_view(template_name='base.html')),
]

在模板中基本.html我显然是指我的angular应用程序。对于角度布线,我已完成以下操作:

^{pr2}$

所以,理想情况下,我认为去example.com/projectkeeper/#/dashboard/可以从我的angular应用程序运行仪表盘控制器。但是,事实并非如此,我只得到一个空页面,这意味着路由不正确。在

有什么解决办法吗?如前所述,我希望只在url以projectkeeper/开头时运行Angular应用程序。在


Tags: 项目djangocom程序运行应用程序url网站example
2条回答

我觉得你已经很接近了,没有什么东西可以让它成功(老实说,这让我很困惑,我希望我没有忘记任何事情)。在

首先,你的url顺序很重要,如果你在角度路由之前定义了一些东西,那么就在角度路由之前使用django应用程序的url。在

然后,如果您想让angular知道子路径,您需要在头中定义<base>标记。在您的情况下:

<base href="/projectkeeper/" />

(您也可以在所有的where函数中定义projectkeeper它)。在

对于url,我将regex改为:r'^projectkeeper/.*'。同样,应该是URL列表中的最后一个。在

您将遇到其他问题,如{{ }},身份验证问题,但这些问题将保留到不同的答案:)

试试这个angularJS的ui路由器 https://github.com/angular-ui/ui-router

它将对嵌套视图和您当前面临的问题更有帮助。在

相关问题 更多 >