Javascript 将传递的函数参数附加到控制器内的$scope
我在Javascript 将传递的函数参数附加到控制器内的$scope,javascript,angularjs,Javascript,Angularjs,我在元素中有一个ng click=“myMethod(parameter)”。我想使用这个参数,在我的例子中,它是控制器中的一个字符串,这样我就可以对它执行$scope.parameter.subperties之类的操作。因此,实际上,这个参数实际上是现有$scope.object的别名 因此,我的目标是在不同的地方重复使用这个myMethod(),比如ng单击中的,并对参数名称标识的相应$scope对象执行相同的功能 用于查找控制器内object1长度的模拟代码如下: .controller(
元素中有一个ng click=“myMethod(parameter)”
。我想使用这个参数
,在我的例子中,它是控制器中的一个字符串,这样我就可以对它执行$scope.parameter.subperties
之类的操作。因此,实际上,这个参数实际上是现有$scope.object的别名
因此,我的目标是在不同的地方重复使用这个myMethod()
,比如ng单击
中的,并对参数名称标识的相应$scope
对象执行相同的功能
用于查找控制器内object1
长度的模拟代码如下:
.controller('MyCtrl', function($scope){
$scope.object1;
$scope.object2;
$scope.myMethod = function(arg){
var length = $scope.arg.length;
};
})
在这里,作为参数传递的值可以是如下所示的对象名称之一:
查找长度
非常感谢您的帮助。您应该使用括号符号[]
而不是点符号
如$scope[arg]。使用长度
动态访问变量
$scope.myMethod = function(arg){
var length = $scope[arg].length;
};
并且应该使用参数作为字符串,因此使用ng click=“myMethod('parameter')”
而不是ng click=“myMethod(parameter)”
当您有一个动态键时,您需要使用括号表示法
$scope.object1;
$scope.myMethod = function (arg) {
var length = $scope[arg].length;
};
但是您必须向函数传递一个字符串
<button ng-click="myMethod('object1')">Find Length</button>
查找长度
如果我在跟踪你,你会想要这样的东西:
<div ng-controller="myController as foo">
<button ng-click="foo.clickyclicky('barney')">Barney</button>
<button ng-click="foo.clickyclicky('fred')">Fred</button>
</div>
function myController() {
var vm=this;
vm.barney = {};
vm.barney.wife = "Betty"
vm.fred = {};
vm.fred.wife = "Wilma"
function clickyclicky(who) {
var hubby = vm[who]
alert(hubby.wife)
}
};
正是我想要的,谢谢!接受这一最合适的答案,正如您指出的ng click
方法调用的正确语法,该方法调用的参数位于
中。感谢您的快速回复。谢谢,我答对了。欣赏这个例子!