我在ExtJS 5.1中有以下课程:
Ext.define('Web.view.guard.apps.conexao.Conexao', {
extend: 'Web.view.guard.apps.App',
width: 400,
height: 600,
statics: {
title: 'Conexão',
icon: 'https://upload.wikimedia.org/wikipedia/commons/a/ac/Approve_icon.svg'
},
});
我想从控制器或视图本身访问实例上下文中的静态属性,如title = this.statics.title
或类似的东西,但我在文档中找不到方法。
我通过Google找到了方法statics()
的引用,但它不起作用,this.statics().title
返回null
,尽管statics()
方法确实存在。
怎么可能?
答案 0 :(得分:3)
简单的方法是
Web.view.guard.apps.conexao.Conexao.title
但this.self
是对Web.view.guard.apps.conexao.Conexao
的引用,因此您可以使用this.self.title
。请参阅http://docs.sencha.com/extjs/5.1/5.1.1-apidocs/#!/api/Ext.Base-property-self和https://fiddle.sencha.com/#fiddle/na0
Ext.define('Web.view.guard.apps.conexao.Conexao', {
extend: 'Web.view.guard.apps.App',
width: 400,
height: 600,
statics: {
title: 'Conexão',
icon: 'https://upload.wikimedia.org/wikipedia/commons/a/ac/Approve_icon.svg'
},
myInstanceMethod: function() {
console.log(this.self.title);
}
});
var conn = new Web.view.guard.apps.conexao.Conexao();
conn.myInstanceMethod();
// 'Conexão'
// 'https://upload.wikimedia.org/wikipedia/commons/a/ac/Approve_icon.svg'
如果您希望子类可以访问它,请务必使用inheritableStatics: {}
代替。