Forms 在ExtJS中,如何将对象加载到表单字段中?

Forms 在ExtJS中,如何将对象加载到表单字段中?,forms,extjs,extjs4,Forms,Extjs,Extjs4,如果我有一个JSON响应,比如 { "something": "foo", "subobject": { "id": "bar", "name": "baz" } } 我正在使用form.setValues(responseObject)将响应加载到表单中 如果子对象的形式中有displayfield,如何将子对象中的名称放入该字段?或者更好的是,如何将名称和id放入该字段 我尝试了一个自定义渲染器,但传入渲染器的value参数是一个包含

如果我有一个JSON响应,比如

{
    "something": "foo",
    "subobject": {
        "id": "bar",
        "name": "baz"
    }
}
我正在使用
form.setValues(responseObject)
将响应加载到表单中

如果子对象的形式中有
displayfield
,如何将子对象中的名称放入该字段?或者更好的是,如何将名称和id放入该字段

我尝试了一个自定义渲染器,但传入渲染器的value参数是一个包含
“[object object]”
的字符串


我正在使用ExtJS4.1.3。有人有什么建议吗?

通过将以下内容添加到我的displayfield配置中来实现

valueToRaw: function(value) {
    return value;
}
标准值AW将对象转换为字符串,这对任何人都没有用处

然后我添加了这个自定义渲染器,将我的字段显示为链接

renderer: function(value, field) {
    if (!value) { 
        return; 
    }
    return "<a href='" + value.id + "'> " + value.name + "</a>";
}
渲染器:函数(值、字段){
如果(!value){
返回;
}
返回“”;
}

我觉得我应该能够使用模板而不是自定义的渲染器,但我没有运气让它正常工作。

从长远来看,通过使用模型和存储以及使用表单设置表单字段,您可能会得到更好的服务。loadRecord(record)@dbrin,你这么说很有趣。我只是在我的问题中添加了一条评论,大意是同时使用存储和表单是一个巨大的痛苦。@dbrin,顺便说一句,前面的评论并不是有意贬低。根据我的经验,存储和表单似乎不是为互操作性而设计的。但我仍然是一个ExtJS新手。这取决于你打算用表单做什么,以及你的数据模型有多复杂。然而,在大多数情况下,这种关系很好:看看Sencha的这个例子