我正在研究用coffescript编写的ExtJS MVC样式应用程序,我只想返回分配给“key2”的值的数量。
在这个例子中,我想回到2号。
然而,在下面的例子中,我得到“11”。任何见解将不胜感激。
// JSON
"data" : [{
"key1" : "value",
"key2" : ["valu1", "valu2"]
]}
//Model
Ext.define("Test.model.Values",
extend: "Ext.data.Model"
fields: [
name: "key1"
type: "string"
,
name: "values"
type: "string"
convert: (value, record) ->
return record.get("key2").length
]
)
答案 0 :(得分:1)
设置
type: "string"
在包含数组的字段上,如:
["valu1", "valu2"]
会将值强制为字符串:
"valu1,valu2"
在这种情况下恰好是11个字符。
首先,您需要为“key2”定义一个字段,以便从您的数据中读取它,然后确保不要明确设置类型。
fields: [{
name: "key1",
type: "string",
},{
name: "key2"
},{
name: "values",
convert: function(value, record){
return record.get("key2").length
}
}]