javascript组件没有名为" available"的方法。使用transformrequest时

时间:2014-07-24 20:58:25

标签: javascript angularjs typescript

我正在学习Angular,我有一个这种形式的请求对象:

var data = {
   destinationProjectId: proj.Id,
   items: $scope.selections   // this is an array
}

$ scope.selections让我回到实际的javascript对象。端点期望items数组仅具有选择的Id。我知道我可以这样做:

var newItems = [];
$scope.selections.forEach((obj) => {
   newItems.push(parseInt(obj.Id));
});

并使用$ http发送。但我想做的是:

$http({ method: "POST", url: url, data: $scope.selections, 
transformRequest: (data, headers) => {
   var payload = [];
   var s = <any>data.items;
   s.forEach((o) => {
      payload.push(parseInt(o.Id));
   }); 
   return payload;
});

在firebug控制台中,我得到:

[例外...&#34; JavaScript组件没有名为的方法:&#34;可用&#34;&#39; JavaScript组件没有名为的方法:&#34;可用&#34; &#39;调用方法时:[nsIInputStream :: available]&#34; nsresult:&#34; 0x80570030(NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED)&#34;

对于发生了什么的任何想法?感谢。

1 个答案:

答案 0 :(得分:0)

  

[Exception ...“JavaScript组件没有名为的方法:”available“'JavaScript组件没有名为的方法:”available“'调用方法时:[nsIInputStream :: available]”nsresult:“0x80570030 (NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED)“

这是一些firefox插件中的错误。不是你的代码。 nsIInputStream是firefox for plugins的API。 (参考:https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIInputStream

也许更新你的萤火虫或检查其他插件。