我有一個AngularJS前端的Django應用程序。應用程序發送通知電子郵件,它使用Django模板呈現。如何從Django模板中反轉AngularJS路由?
ITEM: {{article.title}}
DATE: {{article.date}}
SOURCE: {{article.link}}
{{article.body}}
問題是article.link
。以前版本的應用程序沒有使用Angular,所以很容易找到鏈接。在urls.py
我們有
url(r'article/(?P<article>\d+)/$', views.ArticleView.as_view(), name='show-article')
這意味着我們可以逆轉的URL爲特定物品與
django.core.urlresolvers.reverse('show-article', kwargs={'article':article_id})
現在,在網站上,顯示的URL的基於角改造的一篇文章外觀像/mysite/#/article/1234
並通過routes.js
確定:
$routeProvider.when('/article/:articleId', { ... })
底線,我沒有辦法抓住從一個Python AngularJS路線。我可以將來自routes.js
的所有路線硬編碼爲後端看到的內容,但它不會很乾。我可以用Django動態地生成routes.js
,但現在我們其他的JS源都沒有被Django觸及 - 這看起來也不是很乾淨。也許我應該繼續支持舊式URL(/article/1234
)作爲重定向到Angular式URL(/#/article/1234
)?我認爲,這仍然需要邏輯重複。
我應該在這裏使用更好的模式嗎?
請記住,我沒有試圖在Angular中反轉Django URL(我在這裏發現了一個問題,但我失去了該選項卡:(),我試圖在Django中反轉Angular路由。 django-js-reverse'是用於其他方式的,你鏈接的'django-angular'頁面也是如此,我想從服務器找到前端路由,而不是客戶端的後端URL。 – Coderer