2

次のような JSON 応答がある場合、

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

を使用して応答をフォームにロードしていform.setValues(responseObject)ます。

サブオブジェクトであるフォームにある場合displayfield、サブオブジェクトからそのフィールドにその名前をどのように入力しますか? または、さらに良いことに、そのフィールドに名前と ID を入力するにはどうすればよいですか?

カスタム レンダラーを試しましたが、レンダラーに渡される値パラメーターは、"[object Object]".

ExtJS 4.1.3 を使用しています。誰にもアドバイスはありますか?

4

1 に答える 1

2

私のdisplayfield設定に以下を追加することで動作するようになりました

valueToRaw: function(value) {
    return value;
}

標準の valueToRaw はオブジェクトを文字列に変換しますが、これは誰の役にも立ちません。

次に、このカスタム レンダラーを追加して、フィールドをリンクとして表示しました。

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

カスタム レンダラーの代わりにテンプレートを使用できるようにすべきだと思いますが、うまくいきませんでした。

于 2012-12-14T19:59:33.803 に答える