我在ng-click="myMethod(parameter)"
元素中有一个<button>
。我想使用这个parameter
,在我的例子中,它是控制器内的一个字符串,这样我就可以对它进行$scope.parameter.subProperties
之类的操作。所以实际上这个参数实际上是现有$ scope.object的别名。
因此,我的目标是在myMethod()
的{{1}}&#39}中的不同位置重复使用此ng-click
,并在相应的{{<button>
上执行相同的功能1}} $scope
名称标识的对象。
用于查找控制器内parameter
长度的模拟代码如下:
object1
这里,作为参数传递的值可以是这样的对象名之一:
.controller('MyCtrl', function($scope){
$scope.object1;
$scope.object2;
$scope.myMethod = function(arg){
var length = $scope.arg.length;
};
})
感谢任何帮助,谢谢。
答案 0 :(得分:2)
您应该使用括号 resetController: function(controller){
controller.set('isLocked', true);
}
代替点符号 []
,例如.
来动态访问变量< / strong>
$scope[arg].length
并应使用$scope.myMethod = function(arg){
var length = $scope[arg].length;
};
作为字符串,因此请使用parameter
代替ng-click="myMethod('parameter')"
答案 1 :(得分:1)
如果您有动态密钥,则需要使用括号表示法。
$scope.object1;
$scope.myMethod = function (arg) {
var length = $scope[arg].length;
};
但是你必须将一个字符串传递给函数。
<button ng-click="myMethod('object1')">Find Length</button>
答案 2 :(得分:1)
如果我跟着你,你想要这样的东西:
<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)
}
};