远程的第三方 JSONP 服务器为我的 CanJS 脚本提供了如下结果列表:
[
{ "class": "ABaseClass", "value": "1"},
{ "class": "ASubClass", "value": "2"},
{ "class": "ABaseClass", "value": "3"},
{ "class": "ASubClass", "value": "4"},
...
]
在type
CanJS 中定义的预期对象类在哪里can.Model.extend
:
以下简化代码演示了 CanJS 设置:
ABaseClass = can.Model.extend({ ... }, {
'findAll': { 'url': 'the url', 'dataType': "jsonp" }
// this is modified source code and may not run
});
// ASubClass is a subclass of ABaseClass.
ASubClass = ABaseClass.extend({ ... }, { ... });
问题:
当ABaseClass.findAll({}, function(data) { ... })
被调用时,它为更多对象调用 JSONP 端点,回调获取 CanJS 模型的列表,但只有 class ABaseClass
。
问题:
CanJS 是否提供了一个辅助方法来根据对象列表中的字段自动创建子类?如果没有,我该如何实施?
预期输出:
[
(new ABaseClass(...)),
(new ASubClass(...)),
(new ABaseClass(...)),
(new ASubClass(...)),
...
]
环境:
- CanJS:1.17
- jQuery:1.10.1
- 我无法控制端点返回的对象类型。
- 多个 AJAX 调用不是公认的解决方案。