【发布时间】:2014-03-20 17:38:09
【问题描述】:
在 ember 模板中,我的 model.partners 是一个对象数组,我尝试迭代并打印所有名称属性,但出现错误提示 "Cannot redefine property: name"
{{#each partner in model.partners}}
<li>
{{partner.name}}
</li>
{{/each}}
---> I got an error saying "Cannot redefine property: name"
所以我尝试{{log partner}} helper 看看每个伙伴对象是否正确,它显示正确的对象信息,包括名称属性。
{{#each partner in model.partners}}
<li>
{{log partner}}
</li>
{{/each}}
----> This iteration print all information of model.partners correctly
这是我的 Ember 环境信息。
DEBUG: -------------------------------
DEBUG: Ember : 1.4.0
DEBUG: Ember Data : 1.0.0-beta.7.f87cba88
DEBUG: Handlebars : 1.1.2
DEBUG: jQuery : 2.0.3
DEBUG: -------------------------------
Ember Inspector ($E): Object {userInfo: Object, partners: (...),__ember1395345243022_meta: Meta}
这可能是什么问题? 任何帮助将不胜感激。
-编辑
我只是想知道错误消息是什么意思“无法重新定义属性:”以及谁在抱怨这个。
这是当我使用 {{partner.name}} 得到错误时来自 Ember Inspector 的日志,你可以看到 Ember.watchKey 是堆栈的顶部
Transitioned into 'landing' libs.js:6215
Transition #0: TRANSITION COMPLETE. libs.js:6215
Uncaught TypeError: Cannot redefine property: name libs.js:6595
Ember.watchKey libs.js:6595
Ember.watch libs.js:7114
Ember.addObserver libs.js:8386
Ember.View.Ember.CoreView.extend.registerObserver libs.js:27048
simpleBind libs.js:30930
bindHelper libs.js:31030
(anonymous function) libs.js:30978
program1 templates.js:130
prog libs.js:475
Ember.View.Ember.CoreView.extend.render libs.js:26009
Ember.CoreView.Ember.Object.extend._renderToBuffer libs.js:24947
Ember.View.Ember.CoreView.extend._renderToBuffer libs.js:26578
superWrapper
下面的日志是我使用 {{log partner}} 成功通过控制台看到伙伴对象时得到的日志,你可以在 Ember Inspector 中看到 7 个伙伴对象。出于隐私原因,请理解模糊实际姓名。
Transitioned into 'landing' libs.js:6215
Transition #0: TRANSITION COMPLETE. libs.js:6215
Object {value: 0, name: "ASM", idx: 0} libs.js:6215
Object {value: 1, name: "Air Force", idx: 1} libs.js:6215
Object {value: 2, name: "Army", idx: 2} libs.js:6215
Object {value: 3, name: "Coast Guard", idx: 3} libs.js:6215
Object {value: 4, name: "Marines", idx: 4} libs.js:6215
Object {value: 5, name: "Navy", idx: 5} libs.js:6215
Object {value: 6, name: "Wives", idx: 6} libs.js:6215
您能指导我如何/从哪里开始调试此问题吗?我有足够的时间来做这件事,让我知道您需要我提供的任何帮助。 谢谢。
【问题讨论】:
-
我认为(不确定)
name可能是受保护的变量名。尝试将其更改为partnerName,看看是否有任何不同。 -
我也尝试了 {{model.userInfo.uuID}} 但仍然得到“无法重新定义属性:uuID”。当我尝试 {{log model.userInfo.uuID}} 时,我可以通过控制台看到正确的值。