1

フラスコを使用してhtmlテンプレートをレンダリングしています。フラスコの render_template を介して渡す変数 add_html_data を AngularJs コントローラーのスコープに渡したいと思います。

私は試した

<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>

しかし、それをコントローラーのスコープに取り付ける方法はまだわかりません。

ご協力ありがとうございます

4

3 に答える 3

1

@Miguelの答えはうまくいくと思いますが、として定義されたデータのJSONブロブを返すための安らかな呼び出しを作成しadd_html_metadata、リクエストを使用し$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
   }); 
}]);
于 2013-11-05T06:11:18.250 に答える
0

とにかく、フラスコの経験はありません。ng -includeを使用してみてください

于 2013-11-04T20:17:41.660 に答える