panel的setTitle()函数不会发布到面板的viewModel

时间:2015-01-13 09:43:58

标签: javascript extjs

当我调用extjs面板组件的setTitle函数时,标题立即更新,但是viewModel绑定到它不会改变!

代码如下:

Ext.application({
    name: 'Fiddle',

    launch: function() {


        var textfield = Ext.create('Ext.form.field.Text', {
            itemId: 'textfieldItem',
            fieldLabel: 'fjdks',
            bind: '{customer.name}'
        });

        var panel = Ext.create('Ext.form.Panel', {
            viewModel: {},
            bind: {
                title: '{customer.name}'
            },
            renderTo: Ext.getBody(),
            items: [textfield]

        });

        panel.setTitle('123');
        Ext.Msg.alert('Fiddle', panel.getViewModel().get('customer.name'), function() {
            textfield.setValue('rrrrr');
            Ext.Msg.alert('Fiddle', panel.getViewModel().get('customer.name'));
        });

    }
});

请参阅Sencha fiddle

1 个答案:

答案 0 :(得分:1)

显然不是双向约束。您可以将其作为错误或缺少的功能报告给Sencha,但是,通过扩展Ext.panel.Panel并实现将发布到viewmodel的applyTitle方法来修复它很容易。如果您决定使用此方法,请不要忘记调用parent applyTitle。