将 Javascript 变量传递给 AngularJS

Pass Javascript variable to AngularJS

我是 AngularJS 和 JavaScript 的新手,需要一些帮助来尝试将 JavaScript 变量放入我的 AngularJS 控制器中。这是我的 html 页面:

    <!DOCTYPE html>

    <html lang="en" xmlns="http://www.w3.org/1999/xhtml" ng-app="test">
    <head>
        <meta charset="utf-8" />
        <title>Test</title>
        <!--Third party scripts-->
        <script type="text/javascript" src="js/jquery-2.1.4.min.js"></script>
        <script type="text/javascript" src="js/angular.min.js"></script>
        <script type="text/javascript" src="js/angular-sanitize.min.js"></script>
        <!--Custom scripts-->
        <script type=" text/javascript" src="app/test.js"></script>
        <!--Third party style sheets-->
        <link type="text/css" rel="stylesheet" href="css/test.css" />
    </head>
    <body>

    <div id="page" ng-controller="PageCtrl">
        <ul>
            <li ng-click="print(gBool)"><a href="#print">Print</a></li>
        </ul>
    </div>
</body>
</html>
<script>
    var gBool = false;
    window.onload = function () {
        gBool = true;
    };
</script>

这里是 AngularJS 代码:

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

app.controller('PageCtrl', ['$scope', function ($scope) {
    $scope.print = function (boolParam) {
            console.log(boolParam);
    };
}]);

这只是在执行时在控制台中打印出 'undefined'。这应该有用吗?

您需要以 "angular" 的方式使用 $window:

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

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

这一行:

<li ng-click="print(gBool)"><a href="#print">Print</a></li>

您在您的作用域中引用了一个变量 gBool,因此它 $scope.gBool 如果您在 JavaScript 中而不是在 html 中定义,将会起作用。

$scope.gBool = true;

此外,查找 $window 并像这样从您的控制器中使用它:

app.controller('PageCtrl', ['$scope', '$window', function ($scope, '$window') {
    $scope.gBool = false;
    $window.onload = function() {
        $scope.gBool = true;
    };
    $scope.print = function (boolParam) {
            console.log(boolParam);
    };
}]);

有两点需要关注

(i)你需要初始化你可以使用的变量 ng-init (ii) 声明一个函数来初始赋值bool值

这是工作Application