将javascript变量传递给angularjs范围
Pass javascript variable to angularjs scope
我正在使用烧瓶来渲染html模板。 我想将变量add_html_data(我通过 flask 的render_template传递)传递给 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>
但是,仍然无法弄清楚如何将其附加到控制器范围。
感谢您的任何帮助
您可以在
控制器中创建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
的 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
相关文章:
- AngularJS:'$范围未定义'
- AngularJS范围没有更新
- AngularJS范围变量Unwatch
- 如何使用EnquireJS使AngularJS范围变量依赖于媒体查询
- AngularJS-范围差异
- AngularJS范围未定义
- AngularJS范围定义的函数为null
- AngularJS-范围错误:''之后超过了最大调用堆栈大小;应用程序启动
- AngularJS范围监视未触发
- 使用angularjs范围变量初始化javascript变量
- 将来自多个控制器的 AngularJS 范围对象合并到一个对象中
- angularJS范围在HTTP get之后不会更新
- 创建高图表点击功能时丢失了 Angularjs 范围
- 将javascript变量传递给angularjs范围
- 将 json 数组中的数组映射到 Angularjs 范围
- 从内部函数更改 AngularJS 范围变量
- jQuery中的AngularJS范围
- 在验证Symfony2中的搜索表单后更新AngularJS范围
- AngularJS 范围问题
- 在视图中简单呈现 AngularJS 范围数据