簡體   English   中英

將javascript變量傳遞給angularjs范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM