只考虑一个控制器,考虑基本的AngularJS应用程序。在控制器里面我设置了#34; myVariable"保持价值"测试"。
我在视图中获得了内联JavaScript代码,我需要调用函数 samplefunction ,它使用 myVariable 来获取参数。
/* Controllers */
angular.module('myApp.controllers', [])
.controller('MainCtrl', ['$scope', function($scope) {
$scope.myVariable = "Test";
});
在视图中,在html文件中,这就是我需要做的事情:
<script type="text/javascript">
var param1 = {{myVariable}}; /* <-- how to make this work? */
samplefunction( param1 );
</script>
虽然它没有用。我只需要将myVariable值赋给 param1 。我也尝试过这样的事情:
...
var param1 = angular.element(document.getElementById("mainBody")).scope().myVariable
...
但这也没有奏效。 请注意,我无法触摸我在视图中调用的给定JS代码。
任何人都知道如何解决这个简单的问题?
答案 0 :(得分:1)
从我的POV中你不应该做的事情。最接近的正确方法应该是:
使用以角度为单位的值设置视图:
<input type="text" ng-model="myVariable" id="myVar" />
如果您希望获得var值,请从视图获取,如:
<script type="text/javascript">
var param1 = document.getElementById("myVal").value;
samplefunction( param1 );
</script>
<强> Online Demo 强>
答案 1 :(得分:0)
将var传递给$ window以将其公开给你的JS。
$window.myVariable = $scope.myVariable;
答案 2 :(得分:0)
如何将范围变量绑定到视图中元素的data-something属性,然后在外部脚本标记中使用Jquery将其拉出来?
<script type="text/javascript">
var param1 = $("#someId").data("myValue");
samplefunction( param1 );
</script>