我有一个从我的API填充的范围变量。我可以使用{{}}大括号从HTML访问此内容。


我需要将范围传递到脚本文件中。

&# xA; < script type =“text / javascript”> var data = {{data}}< / script>



 从目前为止我看到的东西看起来过于复杂相对简单。


建议的方法是什么?这不是一个常见的问题吗?


具体来说,我试图使用一个javascript图形库Cytoscape.js。该图表是从javascript对象填充的。我想从范围填充这个javascript对象。我发现了这个:


 

我想知道这是否通常以角度处理,因为它看起来像是黑客。
& #xA;答案 0 :(得分:2)
首先要明确的是,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>
无论如何,让我们说它不会是 Angular Way ,但由于我不知道它的发展范围,这是我能告诉你的最好的。