将 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
我是 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