5

I have the following javascript variable defined and need to pass the memId value into AngularJs init function.

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

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

I am getting an error : memId is not defined.

Console shows the memId value inside ng-init is not getting passed in.

How can I pass in the javascript variable into ng-init?

Satpal
  • 132,252
  • 13
  • 159
  • 168
Ravi Ram
  • 24,078
  • 21
  • 82
  • 113

3 Answers3

12

You need to do it in the "angular" way by using $window:

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

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

Demo: http://codepen.io/qwertynl/pen/jqIrK

qwertynl
  • 3,912
  • 1
  • 21
  • 43
5

Currently Your variables are bounded to window object. You can use Angular $window to access global window object

// 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;
    }
]);
Satpal
  • 132,252
  • 13
  • 159
  • 168
0

For angular 2, you can achieve this by using below:

In your jQuery app, declare a variable and assign it to window object: window.glb = "This is global". In your angular app, add the below line anywhere before your component declaration: declare var window: any; Then in your ngOnInit, you can access the global variable as below: window.parent.

SPR
  • 116
  • 7