将javascript变量传递给angularjs范围
我正在使用flask呈现html模板。我想将通过flask的render_模板传递的变量add_html_数据传递给AngularJs控制器范围 我试过了将javascript变量传递给angularjs范围,javascript,angularjs,flask,Javascript,Angularjs,Flask,我正在使用flask呈现html模板。我想将通过flask的render_模板传递的变量add_html_数据传递给AngularJs控制器范围 我试过了 <body> <div ng-controller="layoutController" ng-init="entries= {{ add_html_metadata|tojson }}"/> </body> 在本例中,{{}表示flask变量(我将angularjs绑定语法更改为{[{}]}
<body>
<div ng-controller="layoutController" ng-init="entries= {{ add_html_metadata|tojson }}"/>
</body>
在本例中,{{}表示flask变量(我将angularjs绑定语法更改为{[{}]})
此外,我还尝试创建一个中介javascript变量
<script type="text/javascript">var entries = {{ add_html_metadata|tojson }}</script>
var entries={{add_html_metadata|tojson}
但是,仍然无法确定如何将其附加到控制器范围
感谢您的帮助我没有使用烧瓶的经验,无论如何,尝试使用您可以在控制器中创建一个
init()
函数:
app.controller('layoutController', function($scope) {
$scope.init = function(html_metadata) {
$scope.html_metadata = html_metadata;
}
});
然后在模板中,您可以使用以下数据调用此函数:
<body>
<div ng-controller="layoutController" ng-init="init({{ add_html_metadata|tojson }})"/>
</body>
我认为@Miguel的答案可能有效,但我只需要创建一个restful调用来返回定义为
add\u html\u metadata
的JSON数据块,并使用$http
请求将其放在控制器的作用域中,这是一种有角度的方法。大概是这样的:
@app.route("/html_metadata", methods=["GET"])
def get_html_metadata():
#do something in here
return jsonify(html_metadata)
在角度控制器中
myApp.controller('layoutController', ['$scope', function($scope) {
$http({method: 'GET', url: '/html_metadata'}).
success(function(data, status, headers, config) {
$scope.html_metadata = data
});
}]);
现在您有了一个全局变量
条目
。由于全局变量在js代码中的任何位置都可用。。。。角度控制器或指令或服务内部$scope.entries=entries
。