Javascript 余烬1.13升级
我正在将代码从Ember 1.0.4升级到Ember 1.13。当我使用ember 1.13执行下面的代码时,我得到了错误Javascript 余烬1.13升级,javascript,ember.js,ember-1,Javascript,Ember.js,Ember 1,我正在将代码从Ember 1.0.4升级到Ember 1.13。当我使用ember 1.13执行下面的代码时,我得到了错误 title: Ember.computed('content.title', 'managedObject.isHome', 'managedObject.finalManagedObject', { set: function(name, value) { this.set('content.titl
title: Ember.computed('content.title', 'managedObject.isHome', 'managedObject.finalManagedObject', {
set: function(name, value) {
this.set('content.title', value);
},
if (this.get('content.title') !== undefined) {
return title;
}
if (this.get('managedObject') == Core.rootNode) {
return "Home";
}
get: function() {
return this.get('managedObject.label') || this.get('managedObject.finalManagedObject.displayName');
}
}),
我在执行代码时遇到以下错误
Uncaught SyntaxError: Unexpected token this
我想
这个
参考已经丢失了。尝试用下面的代码替换您的代码
title: Ember.computed('content.title', 'managedObject.isHome', 'managedObject.finalManagedObject', {
set(name, value) {
this.set('content.title', value);
},
get() {
return this.get('managedObject.label') || this.get('managedObject.finalManagedObject.displayName');
}
if (this.get('content.title') !== undefined) {
return title;
}
if (this.get('managedObject') == RSuite.rootNode) {
return "Home";
}
}),
您正在使用对象定义计算属性。该对象必须具有
get
,并且可能具有set
功能。两人都在场。但还有六个在对象定义中无效的语法。您正在尝试构造如下所示的对象:
{
set: function(name, value) {
this.set('content.title', value);
},
if (this.get('content.title') !== undefined) {
return title;
}
if (this.get('managedObject') == RSuite.rootNode) {
return "Home";
}
get: function() {
return this.get('managedObject.label') || this.get('managedObject.finalManagedObject.displayName');
}
}
该对象的有效部分是:
{
set: function(name, value) {
this.set('content.title', value);
},
get: function() {
return this.get('managedObject.label') || this.get('managedObject.finalManagedObject.displayName');
}
}
根据您的babel配置,您可以将其简化为:
{
set(name, value) {
this.set('content.title', value);
},
get() {
return this.get('managedObject.label') || this.get('managedObject.finalManagedObject.displayName');
}
}
我希望现在清楚了。这与从Ember 1.0.4升级到Ember 1.13无关。请记住,灰烬1.13是非常古老的。2.0是三年多前发布的。因此,我强烈建议继续迁移,直到至少达到2.18。我使用以下代码得到了答案:
title: Ember.computed('content.title', 'managedObject', 'managedObject.label', 'managedObject.finalManagedObject.displayName', {
set: function(titleKey, newTitle) {
this.set('content.title', newTitle);
if (newTitle !== undefined) {
return newTitle;
} else if (this.get('managedObject') === Core.rootNode) {
return 'Home';
}
return this.get('managedObject.label') || this.get('managedObject.finalManagedObject.displayName');
},
get: function() {
var title = this.get('content.title');
if (title !== undefined) {
return title;
} else if (this.get('managedObject') === Core.rootNode) {
return 'Home';
}
return this.get('managedObject.label') || this.get('managedObject.finalManagedObject.displayName');
}
}),
感谢您的建议,Rinold Simon和jelhan。在哪个行号处出现错误?
如果和返回javascript对象内部?这是新事物!您好@rinold,我在这一行上遇到了相同的问题如果(this.get('content.title')!==未定义)
您在示例代码的哪一行出现错误?在我之前的评论中提到的代码的同一行上。尝试删除,
,如果我在删除,
之前已经尝试过,请删除上面的语句。仍然有同样的问题,我想这就是我建议的问题。但问题在于它为什么会抛出此
意外标记。删除if
语句可能会解决此问题