我正在尝试熟悉sencha中的单身人士,但是每次我的吸气者都会给我回复...为什么?我的警报应显示'Bob',但它返回undefined。
这是我的处理程序
handler: function(button, event) {
var user = Prototype.model.Profile;
alert(user._username);}
这是我的单身人士
Ext.define('Prototype.model.Profile', {
extend: 'Ext.data.Model',
singleton: true,
config: {
fields: [
{
name: 'listEvent',
type: 'auto'
},
{
name: 'listBusiness',
type: 'auto'
},
{
name: 'listTravel',
type: 'auto'
},
{
defaultValue: {
username: 'bob'
},
name: 'username'
}
]
},
addTravel: function(newTravel) {
this._listTravel.push(newTravel);
},
getTravel: function(travelTitle) {
var travel;
for(var i=0; i<this._listTravel().getLength(); i++)
{
if(this._listTravel[i].getTitle()==travelTitle)
{
travel=this._listTravel[i];
break;
}
}
}
});
答案 0 :(得分:1)
首先,我认为配置部分应该是:
config: {
fields: [
{
name: 'listEvent',
type: 'auto'
},
{
name: 'listBusiness',
type: 'auto'
},
{
name: 'listTravel',
type: 'auto'
},
{
defaultValue: 'bob', // Instead of extra 'username' here
name: 'username'
}
]
},
但是,我并不认为单身人士会以这种方式使用(使用Model类)。因为singleton总是只为你的类创建一个实例,而Model对象通常应该是独立的。
在我看来,你应该只为util类使用singleton。你想在任何情况下调用的东西。像这样:
Ext.define('myApp.utils.AppConfig', {
singleton: true,
// Default value declared like this, without the config object
defaultValue: 'something',
alternateClassName: 'AppConfig',
log: function(text) {
if (typeof console !== 'undefined') {
console.log(text);
}
}
});
然后在你的控制器/视图
中调用它AppConfig.log('Oh yes ' + AppConfig.defaultValue); // print 'Oh yes something'
答案 1 :(得分:0)
getter和setter工作得很好。这是默认值,无法正常工作。 无法解释为什么如果有人知道,我会接受他们的回答。