0

如何将控制器中所做的更改更新到视图?

看法

 Ext.define('SomeClassName',
 extends: 'Ext.container.Container',
 alias: 'widget.somewidget'
 /* other content here */

控制器

 requires: ['SomeClassName'],
 init: function(){
     var someVar = Ext.widget('somewidget');
     Ext.apply(someVar,{html: 'hello'});
 }

尽管,在上面的控制器中,我改变html了变量,但视图没有改变。我在这里做错了吗?

如果这是不可能的,那么如何做到这一点?

4

2 回答 2

1

那(文档)呢?

Ext.widget('somewidget', { html: 'hello' })
于 2013-03-19T13:43:16.687 回答
1

Ext.container.Container首先,如果您只想呈现自定义 HTML ,则不应使用。Ext.Component就足够了。其次,您可以使用模板:

Ext.define('MyView', {
    extend: 'Ext.Component',
    alias: 'widget.myview',
    tpl: [
        '<div>Simon says: {command}</div>'
    ]
});

Ext.define('MyController', {
    extend: 'Ext.app.Controller',
    requires: ['MyView'],
    init: function() {
        var cmp = Ext.widget('myview');
        cmp.update({
            command: 'jump!'
        });
    }
});

请注意tpl,第一次渲染组件时不会应用,您必须调用update它。要在初始化时呈现模板,请data使用默认模板值设置属性:

Ext.define('MyView', {
    extend: 'Ext.Component',
    alias: 'widget.myview',
    tpl: [
        '<div>Simon says: {command}</div>'
    ],
    data: {
        command: 'do nothing.'
    }
});
于 2013-03-19T18:07:28.893 回答