dar*_*rse 13 javascript python django angularjs
对于一个项目,我在后端使用Django,在前端使用AngularJs.
基本上,我想要的是仅在url开头时运行Angular应用程序projectkeeper/.
换句话说,假设我的网站是example.com.我希望角度应用程序为URL运行example.com/projectkeeper/dashboard/,example.com/projectkeeper/projects/依此类推,但不是example.com/about/.
希望我已经清楚了.无论如何,为了做到这一点,我正在使用我的代码执行以下操作:
urls.py
urlpatterns = [
url(r'^projectkeeper/$', TemplateView.as_view(template_name='base.html')),
]
Run Code Online (Sandbox Code Playgroud)
在模板base.html中,我明显地提到了我的角度应用程序.对于角度路由,我做了以下事情:
myapp.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/dashboard/', {
title: 'Dashboard',
controller : 'DashboardController',
templateUrl : 'static/app_partials/projectkeeper/dashboard.html'
})
.otherwise({ redirectTo : '/' });
}]);
Run Code Online (Sandbox Code Playgroud)
所以,理想情况下,我认为example.com/projectkeeper/#/dashboard/将从我的角度应用程序运行DashboardController.但是,情况并非如此,我只得到一个空页面,这意味着路由不正确.
对此有何解决方案?正如我之前所说的,我想要的是仅在url开头时运行Angular应用程序projectkeeper/.
我认为你已经非常接近了,几乎没有什么事情可以让它发挥作用(老实说,这很难理解,我希望我没有忘记任何事情)。
首先,您的 URL 顺序很重要,如果您在角度路由之前定义某些内容,它们将首先呈现,因此请在角度路由之前使用 django 应用程序的 url。
然后,如果你想让 Angular 了解子路径,你需要<base>在标头中定义标签。在你的情况下:
<base href="/projectkeeper/" />
(您也可以projectkeeper在所有where函数中定义它)。
对于网址,我会将正则表达式更改为:r'^projectkeeper/.*'。同样,应该是您的网址列表中的最后一个。
您将遇到其他问题,例如 {{ }}身份验证问题,但这些问题将保留不同的答案:)
| 归档时间: |
|
| 查看次数: |
622 次 |
| 最近记录: |