我有一些非常直接的 ExtJS 5 JavaScript,当我尝试使用编码将数据输出到标签时,我得到的结果与使用 console.log 记录时不同。我想要的是来自console.log 的内容。下面是描述我的问题的带注释的图片以及显示代码的小提琴。
问问题
77 次
1 回答
1
请注意,我有使用 JavaScript 的经验,但我以前从未使用过 ExtJS。
现在,话虽如此,您看到的结果与控制台不同,因为该方法在Ext.JSON.encode()
内部调用. 您可以通过调试器进入此方法,亲自查看这一点。.hasOwnProperty()
viewModel.getData()
- For
left
-.hasOwnProperty()
返回真 - 对于
from1
-.hasOwnProperty()
返回 false。
由于from1
返回false,返回的字符串Ext.JSON.encode()
不包含该属性。
现在,问题变成了:为什么它返回 false from1
?这是因为您viewModel
不包括from1
作为属性。它目前看起来像这样:
viewModel: {
data: {
left: 'left'
}
}
您需要添加from1
到您的viewModel
.
现在,我确实注意到了一件事。如果我添加from1
并将其值设置为TopPanel
,它仍然无法按预期工作。如果我选择了任何其他值,除了TopPanel
按预期工作并且Ext.JSON.encode()
包含属性输出的字符串。它与viewModel
您声明的第一个配置有关。它目前看起来像这样:
viewModel: {
data: {
from1: 'TopPanel'
}
...
这两种viewModel
配置以某种方式发生冲突。但在我告诉你为什么会这样之前,我必须进一步深入研究 ExtJS 是如何工作的。希望我的回答能将您推向正确的方向。
于 2014-08-01T16:55:25.943 回答