AngularJS 带参数的方法调用
AngularJS method invocation with parameters
我正在研究别人的代码,但我还没有完全理解它。此外,我是 AngularJS.
的新手
他们有一个 class 看起来像这样:
return vm.item[vm.function](request).$promise.then(function (data) {
...
});
当我的vm.function没有参数时,它完美运行。我就是这样
vm.function = "myFunction"
并且 myFunction 按预期被调用。
但是,现在我需要调用一个具有 "id" 参数的函数。我已经试过了
vm.function = "myFunction(0)"
vm.function = "myfunction({id:0})"
甚至在 "request" 变量中添加了一个 "id" 元素,但到目前为止还没有结果。
我怎样才能使这个工作?
vm.function
只是函数的名称,它没有说明参数。让我们分解一下这里发生的事情。
vm.function = 'myFunction';
vm.item[vm.function](request)
转换为
vm.item['myFunction'](request)
相当于
vm.item.myFunction(request)
如您所见,它已经传递了一个 request
参数。要添加另一个,您只需执行以下操作:
vm.item[vm.function](request, id)
使用此模式时请记住,您的动态函数签名必须兼容。如果它们开始出现分歧(如您所说,您正在编辑其他人的代码),您应该重构以以不同的方式处理这个问题。
我正在研究别人的代码,但我还没有完全理解它。此外,我是 AngularJS.
的新手他们有一个 class 看起来像这样:
return vm.item[vm.function](request).$promise.then(function (data) {
...
});
当我的vm.function没有参数时,它完美运行。我就是这样
vm.function = "myFunction"
并且 myFunction 按预期被调用。
但是,现在我需要调用一个具有 "id" 参数的函数。我已经试过了
vm.function = "myFunction(0)"
vm.function = "myfunction({id:0})"
甚至在 "request" 变量中添加了一个 "id" 元素,但到目前为止还没有结果。
我怎样才能使这个工作?
vm.function
只是函数的名称,它没有说明参数。让我们分解一下这里发生的事情。
vm.function = 'myFunction';
vm.item[vm.function](request)
转换为
vm.item['myFunction'](request)
相当于
vm.item.myFunction(request)
如您所见,它已经传递了一个 request
参数。要添加另一个,您只需执行以下操作:
vm.item[vm.function](request, id)
使用此模式时请记住,您的动态函数签名必须兼容。如果它们开始出现分歧(如您所说,您正在编辑其他人的代码),您应该重构以以不同的方式处理这个问题。