Javascript SyntaxError:function语句需要ExtJs中的名称
我喜欢从ExtJs中的JSon响应填充checkboxgroup。当点击发送按钮时,它将在控制台中显示响应Javascript SyntaxError:function语句需要ExtJs中的名称,javascript,checkbox,extjs4,Javascript,Checkbox,Extjs4,我喜欢从ExtJs中的JSon响应填充checkboxgroup。当点击发送按钮时,它将在控制台中显示响应 Ext.define('myclass', { extend: 'Ext.form.Panel', initComponent: function(){ Ext.apply(this, { renderTo: Ext.getBody(), title: 'Message', tbar: [{ text: 'Send', handler: function(){ co
Ext.define('myclass', {
extend: 'Ext.form.Panel',
initComponent: function(){
Ext.apply(this, {
renderTo: Ext.getBody(),
title: 'Message',
tbar: [{
text: 'Send',
handler: function(){
console.log(this.getValues());
},
scope: this
}],
items: []
});
this.callParent(arguments);
}
});
var messagePanel = new myclass();
loadCheckboxes : function(){
Ext.Ajax.request({
url: 'recipients.json',
success: function(response){
console.log(response);
},
scope: this
});
}
this.loadCheckboxes();
onLoad : function(response){
var jsonResponse = Ext.decode(response.responseText);
if (jsonResponse.success) {
// success
console.log(jsonResponse);
}
}
Ext.Ajax.request({
url: 'recipients.json',
success: onLoad(),
scope: this
});
var checkboxGroup = {
xtype: 'checkboxgroup',
columns: 2,
fieldLabel: 'Recipients',
name: 'recipients',
style: {
padding: '10px'
},
items: []
};
this.add(checkboxGroup);
var i, len = jsonResponse.recipients.length, recipient;
for (i = 0; i < len; i++) {
recipient = jsonResponse.recipients[i];
checkboxGroup.items.push({
xtype: 'checkbox',
boxLabel: recipient.fullName,
name: 'recipients',
inputValue: recipient.userID,
checked: recipient.selected
});
}
当我运行此代码时,在控制台中显示错误。
SyntaxError:function语句需要名称
加载复选框:函数(){
请建议我解决此问题的方法。您似乎正在尝试定义对象的键值:
loadCheckboxes : function(){
// ...
}
但是,这些应作为声明的变量或函数:
var loadCheckboxes = function () {
// ...
};
function loadCheckboxes() {
// ...
}
因为它们不在--{…}
--语法name:value
将定义设置为的对象的键,该键可以是匿名的
相反,它们后面是,不能是匿名的。您似乎试图定义对象的键值:
loadCheckboxes : function(){
// ...
}
但是,这些应作为声明的变量或函数:
var loadCheckboxes = function () {
// ...
};
function loadCheckboxes() {
// ...
}
因为它们不在--{…}
--语法name:value
将定义设置为的对象的键,该键可以是匿名的
相反,它们后面是,不能是匿名的。检查这是如何为您工作的
Ext.define('myclass', {
extend: 'Ext.form.Panel',
initComponent: function() {
Ext.apply(this, {
renderTo: Ext.getBody(),
title: 'Message',
tbar: [
{
text: 'Send',
handler: function() {
console.log(this.getValues());
},
scope: this
}
],
items: [
{
xtype: 'checkboxgroup',
columns: 2,
fieldLabel: 'Recipients',
name: 'recipients',
style: {
padding: '10px'
},
items: []
}
]
});
this.callParent(arguments);
},
onLoad: function(response) {
var jsonResponse = Ext.decode(response.responseText);
if (jsonResponse.success) {
// success
console.log(jsonResponse);
var i, len = jsonResponse.recipients.length, recipient;
var checkboxGroup = this.down('checkboxgroup[name="recipients"]');
for (i = 0; i < len; i++) {
recipient = jsonResponse.recipients[i];
checkboxGroup.add({
xtype: 'checkbox',
boxLabel: recipient.fullName,
name: 'recipients',
inputValue: recipient.userID,
checked: recipient.selected
});
}
}
}
});
var messagePanel = new myclass();
function loadCheckboxes() {
Ext.Ajax.request({
url: 'recipients.json',
success: function(response){
console.log(response);
}
// , scope: this <-- you don't need scope here, you are not in a class
});
}
loadCheckboxes(); // <-- I assume this call and the next are for debugging pourposes
Ext.Ajax.request({
url: 'recipients.json',
success: messagePanel.onLoad,
scope: messagePanel
});
Ext.define('myclass'{
扩展:“Ext.form.Panel”,
initComponent:function(){
Ext.apply(本{
renderTo:Ext.getBody(),
标题:“消息”,
待定:[
{
文本:“发送”,
处理程序:函数(){
log(this.getValues());
},
范围:本
}
],
项目:[
{
xtype:“checkboxgroup”,
栏目:2,
fieldLabel:“收件人”,
姓名:'收件人',
风格:{
填充:“10px”
},
项目:[]
}
]
});
this.callParent(参数);
},
onLoad:函数(响应){
var jsonResponse=Ext.decode(response.responseText);
if(jsonResponse.success){
//成功
log(jsonResponse);
变量i,len=jsonResponse.recipients.length,recipient;
var checkboxGroup=this.down('checkboxGroup[name=“recipients”]”);
对于(i=0;i //,范围:这检查这对您的作用
Ext.define('myclass', {
extend: 'Ext.form.Panel',
initComponent: function() {
Ext.apply(this, {
renderTo: Ext.getBody(),
title: 'Message',
tbar: [
{
text: 'Send',
handler: function() {
console.log(this.getValues());
},
scope: this
}
],
items: [
{
xtype: 'checkboxgroup',
columns: 2,
fieldLabel: 'Recipients',
name: 'recipients',
style: {
padding: '10px'
},
items: []
}
]
});
this.callParent(arguments);
},
onLoad: function(response) {
var jsonResponse = Ext.decode(response.responseText);
if (jsonResponse.success) {
// success
console.log(jsonResponse);
var i, len = jsonResponse.recipients.length, recipient;
var checkboxGroup = this.down('checkboxgroup[name="recipients"]');
for (i = 0; i < len; i++) {
recipient = jsonResponse.recipients[i];
checkboxGroup.add({
xtype: 'checkbox',
boxLabel: recipient.fullName,
name: 'recipients',
inputValue: recipient.userID,
checked: recipient.selected
});
}
}
}
});
var messagePanel = new myclass();
function loadCheckboxes() {
Ext.Ajax.request({
url: 'recipients.json',
success: function(response){
console.log(response);
}
// , scope: this <-- you don't need scope here, you are not in a class
});
}
loadCheckboxes(); // <-- I assume this call and the next are for debugging pourposes
Ext.Ajax.request({
url: 'recipients.json',
success: messagePanel.onLoad,
scope: messagePanel
});
Ext.define('myclass'{
扩展:“Ext.form.Panel”,
initComponent:function(){
Ext.apply(本{
renderTo:Ext.getBody(),
标题:“消息”,
待定:[
{
文本:“发送”,
处理程序:函数(){
log(this.getValues());
},
范围:本
}
],
项目:[
{
xtype:“checkboxgroup”,
栏目:2,
fieldLabel:“收件人”,
姓名:'收件人',
风格:{
填充:“10px”
},
项目:[]
}
]
});
this.callParent(参数);
},
onLoad:函数(响应){
var jsonResponse=Ext.decode(response.responseText);
if(jsonResponse.success){
//成功
log(jsonResponse);
变量i,len=jsonResponse.recipients.length,recipient;
var checkboxGroup=this.down('checkboxGroup[name=“recipients”]”);
对于(i=0;i //,作用域:这个缩进很好var messagePanel=new myclass();
和loadcheckbox:function(){
不能同时有效。一个是变量声明(在对象文本中无效),另一个是对象文本键或标签+匿名函数声明(这是不允许的,与匿名函数表达式不同)。建议我解决此问题的工作方案。一些缩进很好var messagePanel=new myclass();
和加载复选框:函数(){
不能同时有效。一个是变量声明(在对象文本中无效),另一个是对象文本键或标签+匿名函数声明(与匿名函数表达式不同,这是不允许的)。建议我解决这个问题。@MuhammadUsama那么你应该自己写一本关于编程的书。这个答案很好地解释了这一点well@MuhammadUsama那么你应该自己写一本关于编程的书。这个答案很好地解释了它。优秀的Diego L Espiñeira.TLDR代替了解释地球理论:穆罕默德·乌萨马要求一本书这是一个有效的解决方案