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

时间:2012-12-14 19:03:01

标签: forms extjs extjs4

如果我有像JSON那样的响应,

{
    "something": "foo",
    "subobject": {
        "id": "bar",
        "name": "baz"
    }
}

我正在使用form.setValues(responseObject)将响应加载到表单中。

如果我在子对象的表单中有displayfield,我如何将该对象从该子对象放入该字段?或者更好的是,如何将名称和ID放入该字段?

我尝试了自定义渲染器,但传递给渲染器的value参数是一个包含"[object Object]"的字符串。

我正在使用ExtJS 4.1.3。有人有什么建议吗?

1 个答案:

答案 0 :(得分:2)

通过将以下内容添加到我的displayfield config

来实现它
valueToRaw: function(value) {
    return value;
}

标准valueToRaw将对象转换为字符串,这对任何人都没用。

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

renderer: function(value, field) {
    if (!value) { 
        return; 
    }
    return "<a href='" + value.id + "'> " + value.name + "</a>";
}

我觉得我应该能够使用模板而不是自定义渲染器,但是我没有运气。