バックエンドからフロントエンドの AngularJS に値を渡す最良の方法は何ですか? 私は Django を使用しており、テンプレートは必要な値を吐き出すことができますが、これらの値を AngularJS に渡す際のベスト プラクティスが何であるかはわかりません。
ブログ投稿とそのコメントについて考えてみましょう。投稿 ID をサービスに渡すことで特定のブログ投稿のすべてのコメントを取得する AngularJS サービスがあり、Django が HTML テンプレートをレンダリングしていて、投稿 ID が何かを認識しているとします。ただし、この投稿 ID を AngularJS に渡し、続いてサービスに渡す必要があります。
1 つのアイデアは、それを非表示にして<input>
、この入力をモデルに割り当てることです。あまり魅力的ではありません。
もう1つは、ディレクティブを持ち、このディレクティブの属性でこの値を渡すことです。この方法で、この属性の値にアクセスできます。
// Django (or any backend) is rendering {{ object.value }}
<div class="myDirective" data-object-id={{ object.value }}>
...
</div>
angular.module('myDirectives', []).
directive('myDirective', function() {
return {
restrict: 'C',
transclude: false,
link: function postLink($scope, $element, $attrs) {
// $attrs.objectId would have the value
}
}
});
これらの 2 つのアプローチは問題ないように見えます。しかし、これを行うためのよりクリーンな方法があるかどうか疑問に思っていますか? AngularJS のベスト プラクティスに従うアプローチはありますか?