简体   繁体   中英

Pass JavaScript variable into AngualrJs ng-init

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?

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

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;
    }
]);

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM