我正在处理别人的代码,但我还不完全了解。此外,我对AngularJS还是陌生的。
他们有一个看起来像这样的类:
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)
使用此模式时请记住,动态功能签名必须兼容。如果他们开始分歧(如您所说,您正在编辑别人的代码),则应重构以其他方式处理此问题。