小编典典

如何在AngularJS指令中访问全局js变量

angularjs

首先,我检查了一下,但没有发现涉及我的问题的文章。

如何在angularJS内置指令中访问预定义的js全局变量?

例如,我在 <script>var variable1 = true; </script>

然后我写一个AngularJS指令:

<div ng-if="variable1">Show some hidden stuff!</div>

这实际上是行不通的。

然后我得知我应该使用 ng-init

所以我在其他地方写了代码:

<div ng-init = "angularVariable1 = variable1"></div>

而且这显然不能正常工作……这就像一个恶性循环。您需要访问预定义的js全局变量,然后需要使用ng-init;为了使用ng-init,您需要访问全局变量。

有什么特别的方法吗?


阅读 263

收藏
2020-07-04

共1个答案

小编典典

我创建了一个有效的CodePen示例,演示了如何在AngularJS中正确执行此操作。Angular$window服务应该用于访问任何全局对象,因为直接访问window会使测试更加困难。

HTML:

<section ng-app="myapp" ng-controller="MainCtrl">
  Value of global variable read by AngularJS: {{variable1}}
</section>

JavaScript:

// global variable outside angular
var variable1 = true;

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

app.controller('MainCtrl', ['$scope', '$window', function($scope, $window) {
  $scope.variable1 = $window.variable1;
}]);
2020-07-04