2015-01-13 2 views
0

extjs 패널 구성 요소의 setTitle 함수를 호출하면 제목이 즉시 업데이트되지만 viewModel은 변경되지 않습니다.패널의 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

를 참조하십시오. Sencha에 버그 나 누락 된 기능으로보고 할 수 있지만, Ext.panel.Panel을 확장하고메서드를 구현하여 viewmodel에 게시하면 문제를 해결하는 것이 매우 쉽습니다. 이 접근법을 결정한다면 부모 applyTitle을 호출하는 것을 잊지 마십시오.

+2

버그가 아니며 속성은 기본적으로 양방향으로 바인딩 할 수 없습니다. 제목이 사용자가 설정할 수 없기 때문에 실제로는 2 가지 방식이 가능하지 않습니다. –

+0

1 층 : setTitle 기능을 재정의 하시겠습니까? – happyyangyuan

+0

더 먼 해결책과 세부 사항은 무엇입니까? – happyyangyuan