2016-05-13 11 views
0

私はAngularJSフロントエンドを持つDjangoアプリケーションを持っています。アプリケーションはDjangoテンプレートを使用してレンダリングする通知メールを送信します。DjangoテンプレートからAngularJSルートを逆にするにはどうすればいいですか?

ITEM: {{article.title}} 
DATE: {{article.date}} 
SOURCE: {{article.link}} 

{{article.body}} 

問題はarticle.linkです。以前のバージョンのアプリケーションではAngularを使用していなかったため、リンクを見つけるのは簡単でした。 urls.pyでは、我々は持っていた私たちは記事のルックスのためのサイト、表示URLの角度ベースの刷新で、今

django.core.urlresolvers.reverse('show-article', kwargs={'article':article_id}) 

で特定の記事へのURLを逆転できることを意味

url(r'article/(?P<article>\d+)/$', views.ArticleView.as_view(), name='show-article') 

/mysite/#/article/1234ようにと routes.jsによって決定されます。

$routeProvider.when('/article/:articleId', { ... }) 

ボトムライン、私は、PythonからAngularJSルートをつかむための方法を持っていません。私はroutes.jsからバックエンドが見るものにすべてのルートをハードコードすることができますが、それはあまり乾燥しません。私はroutes.jsをDjangoで動的に生成することができましたが、今は私たちの他のJSソースのどれもがDjangoに触れられていません。 Angular-style URL(/#/article/1234)のリダイレクトとして古いスタイルのURL(/article/1234)を引き続きサポートする必要がありますか?それでも論理的な重複が必要だと私は思う。

私はここで使用するべきより良いパターンがありますか?

答えて

0

デカップリングクライアントとサーバーは、しばしば目標です。この場合、重複は悪いことではありません。しかし、あなたのニーズに応じて、Djangoのように動作する逆の方法を提供する解決策があります。角度特定のためのdjango-js-reversedjango-angularがあります。

+0

私はDjangoのURLをAngularで逆にしようとしていません(私はここで質問しましたが、タブを紛失しました:()、DjangoのAngularルートを逆転しようとしています。 'django-js-reverse'はあなたとリンクしている' django-angular'ページにも同じことが言えます。クライアントからのバックエンドURLではなく、サーバーからフロントエンドルートを探したいと思います。 – Coderer

関連する問題