ExtJSモデルフィールドにはマッピングオプションがあります。extjs store fail
fields: [
{name: 'brandId', mapping:'brand.id', type: 'int'},
{name: 'brandName', mapping:'brand.name', type: 'string'},
問題がある:サーバーからの応答は、いくつかのフィールド(私の例では、ブランドのフィールド)が含まれていないと内側のフィールドからのマッピングが定義されている場合、内線Storeは静かにすべてのレコードをロードするために失敗しました。
誰にも問題がありますか?それは何らかのバグですか?
更新 私のモデルには10個のフィールドがあるとします。サーバーからの応答に9つのフィールドがあり、1つが欠落しています。このフィールドにネストされたマッピングがない場合(マッピング: 'x.y.z')、すべてがOKです。ストアのロードレコードがあり、フィールドは空です。しかし、このフィールドをいくつかのネストされたフィールドからロードしなければならず、マッピングオプションがある場合、ストアは何もロードしません。
UPDATE 2 問題を引き起こすコードが見つかりました。事実は次のとおりです。extはJSONからいくつかのフィールドをロードしようとしたとき、それはこの
(source["id"] === undefined) ? __field0.defaultValue : source["id"]
しかし、のようなチェックを実行し、フィールドには、マッピングオプション(マッピング「brand.id」)Readerがそれをこのようにしていたときに
(source.brand.id === undefined) ? __field20.defaultValue : source.brand.id
ソースにブランドフィールドがないとエラーが発生します。場合
あなたは私と同じ問題を抱えている:あなたはExt.data.reader.Jsonの方法createFieldAccessExpression私は内線だけそのフィールドをロードするために失敗することに同意し
ストアがレスポンスにレコードが見つからない場合は、他にどのような動作が期待できますか?つまり、あなたの問題は何ですか? –
さて、レコードはサーバーから来ています。「ブランド」フィールドはありません。レコードが一部のフィールドを紛失してマッピングがない場合、すべてがOKで、ストアがレコードをロードし、フィールドが空です – mik
"(私の例ではブランドフィールド)"ここにはブランドフィールドはありません。あなたはbrandIdとbrandNameを持っています。どうか明らかにしてください。 – Jere