[英]Pass javascript variable to angularjs scope
我正在使用flask來渲染一個html模板。 我想將變量add_html_data傳遞給AngularJs控制器范圍,該變量通過flask的render_template傳遞給我。
我試過了
<body>
<div ng-controller="layoutController" ng-init="entries= {{ add_html_metadata|tojson }}"/>
</body>
在這種情況下,{{}}表示燒瓶變量(我將angularjs綁定語法更改為{[{}}}})。
另外,我嘗試創建一個中間javascript變量
<script type="text/javascript">var entries = {{ add_html_metadata|tojson }}</script>
但是,仍然無法弄清楚如何將它附加到控制器范圍。
謝謝你的幫助
您可以在控制器中創建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的答案可能add_html_metadata
,但我只是創建一個restful調用來返回定義為add_html_metadata
的JSON blob數據,並使用$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
});
}]);
我沒有使用燒瓶的經驗,無論如何,嘗試使用ng-include
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.