好的,这里是来自angularjs主页的示例hello world代码:
<!doctype html>
<html ng-app>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
</head>
<body>
<div>
<label>Name:</label>
<input type="text" ng-model="yourName" placeholder="Enter a name here">
<hr>
<h1>Hello {{yourName}}!</h1>
</div>
</body>
</html>
现在,这个模型变量yourName
必须已经在某个地方创建(在某个范围内),并且当然无法使用以下方法访问:
<script>
console.log(yourName);
</script>
我们如何访问此变量,无需创建模块并为其分配控制器,然后使用$scope.yourName
这不是一个要求,但我当然需要它来清除一些概念。
答案 0 :(得分:0)
我知道它的邪恶&#34;尝试做你正在做的事情,但是我一直处于遗留代码的类似情况,无法重写。从我收集的内容来看,您希望从Angular外部访问控制器变量。
因为控制器是一个实例,所以你无法从Angular外部访问它。您需要一种方法将数据从内部模型发布到Angular的范围之外。一种方法是在该模型上使用手表,当它发生变化时,将其分配给&#34; window&#34;上的变量。要做到这一点,我建议创建一个单独的Angular服务来进行实际的发布,这样就可以更好地包含罪恶。
$scope.$watch('yourName', function() {
// If you have a Service to do this, you would use:
//myPublishService.publish("yourName", $scope.yourName)
window.yourName = $scope.yourName;
});