Какой лучший способ передать значение из бэкэнда в AngularJS в интерфейсе? Я использую Django, и шаблоны могут выплеснуть нужные мне значения, однако я не уверен, что наилучшая практика передачи этих значений в AngularJS.
Подумайте о сообщении в блоге и его комментариях. Если бы у меня была служба AngularJS, которая извлекает все комментарии определенного сообщения в блоге, передавая идентификатор сообщения службе, а Django отображает HTML-шаблон, и он знает, что post ID, однако мне нужно передать этот идентификатор сообщения в AngularJS и впоследствии в службу.
Одна идея состоит в том, чтобы иметь его в скрытом <input>
и назначить этот ввод модели. Не очень привлекательно.
Другой - иметь директиву и передать это значение в атрибуте этой директивы, таким образом, я смог бы получить доступ к этому значению атрибута:
// 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
}
}
});
Эти два подхода выглядят прекрасно. Но мне интересно, есть ли более чистый способ сделать это? Любой подход, который следует за лучшими методами AngularJS?