我可以将两个参数传递给Worklight适配器onSuccess函数吗?

时间:2015-08-07 13:42:06

标签: javascript ibm-mobilefirst

我无法使用IBM Worklight将两个参数传递给适配器onSuccess()函数。请告诉我方式。以下是我目前正在尝试的内容:

var options = {
    onSuccess : SubCategoriesSuccess(options, result),
    onFailure : SubCategoriesFailure,
    invocationContext: {}
};

2 个答案:

答案 0 :(得分:1)

onSuccess参数需要引用到函数,而不是函数的调用 - 请注意SubCategoriesSuccessSubCategoriesSuccess()之间存在差异JavaScript的。你正在做的是传递调用SubCategoriesSuccess(options, result)的结果。

您需要的是编程术语中通常称为部分调用的内容。 JavaScript本身具有执行此操作的功能 - Function.prototype.bind()。您可能应该看一下(尽管各种JavaScript工具包也提供了替代方案)。

这意味着您的代码看起来像:

{
  onSuccess : SubCategoriesSuccess.bind(this, options, result),
  onFailure : SubCategoriesFailure,
  invocationContext: {}
};

请注意,我对此进行了测试。

答案 1 :(得分:0)

如果options是调用函数中已有的变量。你必须将return函数包装在另一个函数中。换句话说,成功从适配器返回,选项只是由调用函数传递。

 onSuccess:function(result){
    SubCategoriesSuccess(options, result);
 }