也许我的大脑今天早上还没有完全正常运行,但是从Angular中将模板/视图中的变量变为控制器的最佳或正确方法是什么?
在我看来,我已经定义了var a = 'something'
,我需要在控制器中访问该值。
我可以在passVariable(a)
上执行ng-init
,在控制器内部可以使用
$scope.passVariable = function(param){
$scope.a = param;
}
但显然这不起作用,并且该方法似乎也不正确; - )
答案 0 :(得分:0)
你可以这样做。
将角度模块分配给变量
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>
这将呈现为
User Name : something
答案 1 :(得分:0)
好的,事实证明我的第一个想法毕竟不是太糟糕。我完成了我在我的问题中描述的内容,除了变量a
需要在角度上下文中定义,或者直接传递给函数。出于某种原因,var a = 'something'
(在视图中)没有被提起。
所以以下不起作用:
<script>
var a = something;
</script>
<div ng-controller="myController" ng-init="passVariable(a)">
</div>
但是ng-init="passVariable('something')"
,确实如此。
在控制器中:
$scope.passVariable = function(param){
$scope.a = param;
}
这是使用$ window的另一个可能的答案:Pass JavaScript variable into AngualrJs ng-init