Iron Response 调用 Js Object Impl 对象,但我找不到 class 文档
IronResponse calls an JsObjectImpl object, but I cant find class docs on it
我试图解析 IronAjax 成功处理程序的 return 并将响应设置为 Map 实例。好像不是这样的。
我的 HTML 标记是:
<iron-ajax id="myAjaxId" auto
url="http://localhost:12345/test_server/v1/daily"
handle-as="json"
on-response="handleResponse" on-error="handleError"></iron-ajax>
我的 Dart 代码是:
void handleResponse(CustomEventWrapper cew, IronRequest ir){
print("inside handleResponse");
var data = ir.response; // <-- is type JsObjectImpl
print("data");
print(data);
if (data == null) return;
print ("About to set rows");
List<Map> rows = data.containsKey("data") ? data["data"] : [];
print("Variables are Set locally");
$['myDatagrid'].render();
}
@reflectable
String camelToFormal (String input){
String out;
RegExp regex = new RegExp("([A-Z])");
out = input[0].toUpperCase() + input.substring(1).replaceAllMapped(regex, (Match m) => " ${m[1]}");
return out;
}
@reflectable
void handleError(CustomEventWrapper cew, IronRequest ir){
print("____Error:____");
print(ir.response);
}
我得到的错误是:
type 'JsObjectImpl' is not a subtype of type 'Map' of 'other'.
我不确定是否需要 运行 转换它,即使 IronAjax 设置的 return 类型是 json
因此,由于 ir.response
将被设置或为空,我首先检查它是否为空。 responseHandler
当前设置的 var data
行是,但我也尝试做类似的事情:Map data = new Map.from(ir.response);
也失败了。
尽管据说这是作为 JSON 处理的,并且 returning 一个 jslint 确认反对,但将其转换为适当的地图实例似乎存在问题。
根据 Polymer IronRequest 在:https://elements.polymer-project.org/elements/iron-ajax?active=iron-request
它说responseis *,解析的响应主体。我是否弄错了这是如何正确设置的,还是我遗漏了什么?
您可以在 属性 上尝试使用 Object 而不是 map,然后使用 convertToDart
。不确定这会生成地图,但我想值得一试。另见
我试图解析 IronAjax 成功处理程序的 return 并将响应设置为 Map 实例。好像不是这样的。
我的 HTML 标记是:
<iron-ajax id="myAjaxId" auto
url="http://localhost:12345/test_server/v1/daily"
handle-as="json"
on-response="handleResponse" on-error="handleError"></iron-ajax>
我的 Dart 代码是:
void handleResponse(CustomEventWrapper cew, IronRequest ir){
print("inside handleResponse");
var data = ir.response; // <-- is type JsObjectImpl
print("data");
print(data);
if (data == null) return;
print ("About to set rows");
List<Map> rows = data.containsKey("data") ? data["data"] : [];
print("Variables are Set locally");
$['myDatagrid'].render();
}
@reflectable
String camelToFormal (String input){
String out;
RegExp regex = new RegExp("([A-Z])");
out = input[0].toUpperCase() + input.substring(1).replaceAllMapped(regex, (Match m) => " ${m[1]}");
return out;
}
@reflectable
void handleError(CustomEventWrapper cew, IronRequest ir){
print("____Error:____");
print(ir.response);
}
我得到的错误是:
type 'JsObjectImpl' is not a subtype of type 'Map' of 'other'.
我不确定是否需要 运行 转换它,即使 IronAjax 设置的 return 类型是 json
因此,由于 ir.response
将被设置或为空,我首先检查它是否为空。 responseHandler
当前设置的 var data
行是,但我也尝试做类似的事情:Map data = new Map.from(ir.response);
也失败了。
尽管据说这是作为 JSON 处理的,并且 returning 一个 jslint 确认反对,但将其转换为适当的地图实例似乎存在问题。
根据 Polymer IronRequest 在:https://elements.polymer-project.org/elements/iron-ajax?active=iron-request 它说responseis *,解析的响应主体。我是否弄错了这是如何正确设置的,还是我遗漏了什么?
您可以在 属性 上尝试使用 Object 而不是 map,然后使用 convertToDart
。不确定这会生成地图,但我想值得一试。另见