角度:从<脚本>标记内访问范围
Angular: Access scope from within <script> tag
我有一个从我的API填充的范围变量。我可以使用 {{}} 大括号从 HTML 访问它。
我需要将范围传递到脚本文件中。
<script type="text/javascript"> var data = {{data}} </script>
从我目前所看到的情况来看,对于相对简单的东西来说似乎过于复杂。
推荐的方法是什么?这不是一个很普遍的问题吗?
具体来说,我试图使用javascript图形库Cytoscape.js。图形是从 JavaScript 对象填充的。我想从范围填充这个 javascript 对象。我发现这个:
将 Angular 范围变量传递给 Javascript
我想知道这是否通常以不同的方式处理角度,因为它看起来像一个黑客。
首先要明确的是,Angular 不会在脚本标签中执行插值。
https://docs.angularjs.org/guide/interpolation
有一些方法可以解决这个问题...直接调用变量的值可以是以下方法之一:
<body ng-app="myApp">
<div ng-controller="myController" id="yourControllerElementID">
</div>
</body>
<script type="text/javascript">
var app = angular.module("myApp", []);
app.controller("myController", myController);
function myController($scope){
$scope.data = 'some value';
}
// Capturing value from outside the controller
setTimeout(function(){
var data = angular.element(document.getElementById('yourControllerElementID')).scope().data;
}, 1000);
</script>
否则,根据需要使用插值,将使用控制器的值创建一个隐藏的输入,并使用vanilla javascript或jquery捕获此值:
<body ng-app="myApp">
<div ng-controller="myController">
<input type="hidden" id="myValueFromController" value="{{data}}" />
</div>
</body>
<script type="text/javascript">
var app = angular.module("myApp", []);
app.controller("myController", myController);
function myController($scope){
$scope.data = 'some value';
}
// Capturing value from outside the controller
setTimeout(function(){
var data = document.getElementById("myValueFromController").value; // or
var data = $("#myValueFromController").val();
}, 1000);
</script>
无论如何,让我们说它不会是 角度的工作方式 ,但由于我不知道它的发展范围是什么,这是我能告诉你的最好的。
相关文章:
- 可以't访问JavaScript函数范围中的变量
- 如何从chrome扩展访问angularjs根范围
- 访问内部功能范围的元素,而不是敲除中的外部
- 将 NodeJS 模块范围变量作为对象访问
- 主干.js(具有 Require.js)变量/范围访问问题
- AngularJS:从控制器访问特定的指令范围
- Angularjs:访问范围变量数组并计算平均值
- 如何访问嵌套的表单ng包含范围/字段
- 有棱角的如何获得ng重复项范围的访问权限
- 我怎么把范围弄错了?无法从jQuery访问此函数;.在“上”;
- webGL,javascript:尝试访问属性1中超出范围的顶点
- 是否有任何方法可以访问外部范围's变量
- 淘汰赛:can't从嵌套foreach访问父级范围的属性
- WebDriver Selenium:Javascript代码覆盖范围,无需服务器访问
- JS范围访问
- 从不同范围访问较新版本的变量(JavaScript / jQuery)
- 从外部绑定范围访问knockoutjs ViewModel
- 使用指令将具有范围访问权限的功能附加到html元素
- angular 1.5无范围访问http.get中的数据
- 从其他范围访问对象(javascript)