Extjs에서 양방향 데이터 연결의 사용 방법

2307 단어 extjs

Extjs의 양방향 데이터 바인딩


Sometimes a component's state, e.g. the checked state of a checkbox or the selected record of a grid, is interesting to other components. When a component is assigned a reference to identify it, that component will publish some of its key properties in the ViewModel.
In this example, we have the "Admin Key"textfield's disabled config bound to the the checked state of the checkbox. This results in the textfield being disabled until the checkbox is checked. This sort of behavior is well suited for dynamic forms like this:
Ext.define('MyApp.view.TestViewModel', {
    extend: 'Ext.app.ViewModel',
    alias: 'viewmodel.test', // connects to viewModel/type below

    data: {
        firstName: 'John',
        lastName: 'Doe'
    },

    formulas: {
        // We'll explain formulas in more detail soon.
        name: function (get) {
            var fn = get('firstName'), ln = get('lastName');
            return (fn && ln) ? (fn + ' ' + ln) : (fn || ln || '');
        }
    }
});

Ext.create('Ext.panel.Panel', {
    title: 'Sign Up Form',

    viewModel: {
        type: 'test'
    },

    items: [{
        xtype: 'checkbox',
        boxLabel: 'Is Admin',
        reference: 'isAdmin'
    },{
        xtype: 'textfield',
        fieldLabel: 'Admin Key',
        bind: {
            disabled: '{!isAdmin.checked}'
        }
    }]
});

여기에서ViewModel의 데이터에 isAdmin을 정의하지 않았지만 양방향 데이터를 통해textfield에 귀속할 수 있습니다.이것은 위 문서에서 말한 "When a component is assigned a reference to identify it,that component will publish some of its key properties in the View Model"때문입니다. 구성 요소가 Reference 속성을 사용하면 구성 요소 자체의 관건적인 속성을 View Model 데이터에 등록할 수 있습니다.내 MenuView Model에서 왜 formulas에서menugrid를 사용할 수 있는지 해결했다.selection,menugrid 구성 요소가 Reference:'menugrid'를 등록했기 때문입니다.

공식 문서 주소:


extjs 공식 문서

좋은 웹페이지 즐겨찾기