在视图中访问AngularJS变量?

时间:2014-05-27 20:25:49

标签: javascript angularjs angularjs-scope

只考虑一个控制器,考虑基本的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代码。

任何人都知道如何解决这个简单的问题?

3 个答案:

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