Передайте значение для просмотра при создании
Я пытаюсь сделать пользовательский вид и передать значение, когда я добавляю его в другой элемент, используя xtype. Это выглядит просто, потому что мне не нужно использовать магазины или что-то подобное, это просто статические значения, но я не могу этого достичь:(
Моя идея состоит в том, чтобы поместить это в компонент (родительский компонент моего пользовательского компонента):
...
items: [{
xtype: 'myNewComponent',
car: 'Renault'
}]
...
И тогда в моем пользовательском компоненте получить значение:
Ext.define('myNewComponent', {
extend: 'Ext.Panel',
xtype: 'myNewComponent',
config: {
items: [{
html: 'This is my car: ' + this.config.car
}]
}
});
Я думаю, что я чего-то не понимаю, не могли бы вы мне помочь?
Спасибо!
1 ответ
Есть 2 вещи, которые вам нужно сделать.
Во-первых, вы должны создать новый конфиг в вашем пользовательском компоненте. Сделать это так же просто, как добавить его в config
объект вашего класса:
Ext.define('myNewComponent', {
extend: 'Ext.Panel',
xtype: 'myNewComponent',
config: {
car: null
}
});
null
здесь просто значение по умолчанию, если вы не меняете его при создании компонента.
Теперь мы хотим использовать этот новый конфиг. То, что вы сделали, не будет работать как сфера this.config.car
это окно DOM. Вам нужно будет создать предмет, используя функцию вашего класса. Вы можете достичь этого с помощью нового updateCar
метод вашего нового car
конфигурации. Этот метод вызывается каждый раз, когда вы обновляете этот конфиг. В вашем случае это когда вы впервые создаете свой пользовательский компонент.
Ext.define('myNewComponent', {
...
updateCar: function(newCar) {
this.add({
html: 'This is my car: ' + newCar
});
}
});
Вы можете узнать больше о том, как работает система конфигурации здесь: http://docs.sencha.com/touch/2-1/