Javascript 将变量从模板/视图获取到控制器中?

Javascript 将变量从模板/视图获取到控制器中?,javascript,angularjs,Javascript,Angularjs,也许今天早上我的大脑还没有完全正常工作,但是从模板/视图中获取变量到控制器的最佳或正确的方法是什么 假设在我看来,我已经定义了var a='something',我需要在控制器中访问该值 我可以在nginit上执行passVariable(a),在控制器内部执行类似的操作 $scope.passVariable = function(param){ $scope.a = param; } 但很明显,这是行不通的,而且这个方法似乎也不太正确;-) 你可以这样做 将角度模块指定给变量后 v

也许今天早上我的大脑还没有完全正常工作,但是从模板/视图中获取变量到控制器的最佳或正确的方法是什么

假设在我看来,我已经定义了
var a='something'
,我需要在控制器中访问该值

我可以在
nginit
上执行
passVariable(a)
,在控制器内部执行类似的操作

$scope.passVariable = function(param){
  $scope.a = param; 
}

但很明显,这是行不通的,而且这个方法似乎也不太正确;-)

你可以这样做

将角度模块指定给变量后

 var myApp = angular.module('myApp', []);
 myApp.value('a', 'something');
然后注入控制器

myApp.controller('myController', ['a','$scope', function (a,scope) {
  $scope.a = a;
}]))

因此,在您的视图中,例如说“a”是您希望向用户显示的用户名

 <div ng-controller="myController">

     <div> User Name: {{a}} </div>

 </div>

好吧,结果证明我的第一个想法并不坏。除了变量
a
需要在角度上下文中定义,或者直接传递到函数中之外,我已经完全完成了我在问题中描述的内容。由于某种原因,
var a='something'
(在视图中)没有被拾取

因此,以下方法不起作用:

<script>
  var a = something;
</script>
<div ng-controller="myController" ng-init="passVariable(a)">
</div>

下面是使用$window的另一个可能的答案:


使用以下示例:

定义了
var a
的位置?您可以使用angularjs的
.value([..])
服务,而不是
var a..
并将其注入控制器。它在视图中定义。它必须是,因为变量可以在不同的视图中更改。在视图中调用
.value(…)
不起作用,我该怎么做?当我调用
myApp.value('a','something')时,它会起作用在控制器内部,但如何在视图中执行?感谢您的编辑,但正如问题中所述,变量必须在视图中定义,因为它随视图的变化而变化。(例如,
var a='something'
)。显示变量的值不是问题。
<script>
  var a = something;
</script>
<div ng-controller="myController" ng-init="passVariable(a)">
</div>
$scope.passVariable = function(param){
  $scope.a = param; 
}