angularjs - 带参数的AngularJS方法调用
问题描述
我正在处理别人的代码,但我还没有完全理解它。此外,我对 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)
使用此模式时请记住,您的动态函数签名必须兼容。如果它们开始出现分歧(正如您所说,您正在编辑其他人的代码),您应该重构以以不同的方式处理这个问题。
推荐阅读
- python-3.x - 如何从 nlp 中的数据框列中删除 http URL 链接
- react-native - 如何修复“未定义不是对象(评估'Object.keys(routeConfigs)')”
- python - 需要修改我的正则表达式以在每个新行处拆分字符串
- ruby-on-rails - Rails 中的全局“current_utc_time”函数是一个“坏”主意吗?
- vbscript - 使用 VBscript 和 For 循环卡住填充数组
- java - Spring Boot:如何获取 Web 服务器根 url
- javascript - 尝试将数组拆分为字符数组时出现间歇性类型错误
- javascript - 如何在 React Native 中模糊文本
- java - 如何将单个项目添加到现有微调器?
- matlab - 如何从计算 BVP 的 ODE 函数中提取变量?