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;
}