将JavaScript变量传递给AngualrJs ng-init

时间:2014-01-27 20:24:11

标签: javascript angularjs

我定义了以下javascript变量,需要将 memId 值传递给AngularJs init函数。

<script type="text/javascript">
    var memId = "bb7de28f-0f89-4f14-8575-d494203acec7";
</script>   

<div id="content-header" class="mini" ng-init="getMember(memId)">

我收到错误: memId 未定义。

控制台显示ng-init内的 memId 值未传入。

如何将javascript变量传入ng-init?

3 个答案:

答案 0 :(得分:10)

您需要使用$window

以“有角度”的方式进行此操作
var app = angular.module('myapp', []);

app.controller('MainCtrl', ['$scope', '$window', function($scope, $window) {
  $scope.memId = $window.memId;
}]);

演示:http://codepen.io/qwertynl/pen/jqIrK

答案 1 :(得分:4)

目前,您的变量与窗口对象有关。您可以使用Angular $window来访问全局窗口对象

// Your Global Variable defined outside angular
var memId = "bb7de28f-0f89-4f14-8575-d494203acec7";

//Define Module
var app = angular.module('myapp', []);

//Define Controller
app.controller('MyCtrl', ['$scope', '$window',
    function($scope, $window) {
        $scope.memId = $window.memId;
    }
]);

答案 2 :(得分:0)

对于角度2,您可以使用以下内容实现此目的:

在你的jQuery应用程序中,声明一个变量并将其分配给window对象: window.glb =“这是全球性的”。 在您的角度应用程序中,在组件声明之前的任何位置添加以下行: 声明var窗口:any; 然后在ngOnInit中,您可以访问全局变量,如下所示: window.parent。