javascript - 将传递的函数参数附加到 Controller 内的 $scope

标签 javascript angularjs

我有一个ng-click="myMethod(parameter)"里面 <button>元素。我想用这个parameter ,在我的例子中,它是 Controller 内的一个字符串,以便我可以执行类似 $scope.parameter.subProperties 的操作在上面。所以实际上这个参数实际上是现有 $scope.object 的别名。

所以我的目标是重用这个myMethod()在不同的地方,例如 ng-click位于<button>并在相应的 $scope 上执行相同的功能由 parameter 标识的对象名称。

用于查找 object1 长度的模拟代码 Controller 内部将如下所示:

.controller('MyCtrl', function($scope){
    $scope.object1;
    $scope.object2;
    $scope.myMethod = function(arg){
        var length = $scope.arg.length;
    };
})

这里,作为参数传递的值可以是对象名称之一,如下所示:

<button ng-click="myMethod(object1)">Find Length</button>

感谢任何帮助,谢谢。

最佳答案

您应该使用括号表示法 [] 而不是点表示法 .,例如$scope[ arg].length 动态访问变量

$scope.myMethod = function(arg){
   var length = $scope[arg].length;
};

并且应该使用 parameter 作为字符串,因此使用 ng-click="myMethod('parameter')" 而不是 ng-click="myMethod(parameter )”

关于javascript - 将传递的函数参数附加到 Controller 内的 $scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36727035/

相关文章:

javascript - Android 应用程序上的 Webview 没有响应

javascript - Angularjs参数不是一个得到字符串的函数

angularjs - Firefox 上 Karma 中的 ng-blur

javascript - AngularJS 中的非模态/无模式对话框,无需使用 jquery-ui

javascript - jquery 插件回调重置默认选项

javascript - 悬停时更改对象的大小

javascript - Angularjs:在 ng-include 中获取 document.querySelectorAll

javascript - AngularJS 编译不一致

javascript - 从接口(interface)以编程方式创建 Typescript 用户定义的类型保护

javascript - 在动态复选框上添加 onclick 事件