将值从后端传递到前端的AngularJS的最好方法是什么?我使用Django和模板能够吐出我需要的值,但我不知道什么是最好的做法传递这些值到AngularJS。
想一个博客文章及其评论,如果我有一个AngularJS服务,通过传递帖子ID到服务检索某个博客帖子的所有评论,Django正在呈现HTML模板,它知道什么是帖子ID,然而我需要传递这个帖子ID到AngularJS和随后的服务。
一个想法是使其在隐藏的<输入>并将此输入分配给模型。不是很吸引人。
另一个是有一个指令,并将此属性中的值传递给此指令,这样我将能够访问此属性的值:
// 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 } } });
如果你需要从一个视图初始化一些模型值ng-init指令可能是你正在寻找:
http://docs.angularjs.org/api/ng.directive:ngInit
使用它,你可以简单地写:
<div ng-init="myModel=backend-generated-value-here"> ... </div>
说到上面的话,你可能有一些困难的时候找到最佳实践为您的用例,因为AngularJS专注于Web2.0,全客户端Web应用程序。目前,它不能理想地与服务器端生成内容。它可能在未来版本的AngularJS中改变。