항목

2011-07-27 5 views
0

확인 같은 관리자를 사용하여 몇 가지 이유가 있습니다, 여기에 코드의 작은 조각 (는 ExtJS 4)입니다 .form.CheckboxGroup. 그럼에도 불구하고 검사 결과 생성 된 항목이 동일한 관리자를 사용하고 있음을 보여줍니다. 그것은 의도적이며 그런 행동을 어떻게 없앨 수 있습니까? 나는 (하나 개의 형태가 다른 영향을 미칩니다에 loadRecords) "다른"체크 박스 그룹이 서로 영향을주지 않는 갖고 싶어하기 때문에항목

+0

무엇의 ExtJS 버전

(그들은 같은 이름이있는 경우, 그룹 A와 그룹 B에서 "smthng"정말 "smthng"사이에 차이가 없기 때문에 이것은 또한 디자인의 관점에서 의미가 있습니다) ? –

+0

@Xupypr MV - ExtJs4 – shabunc

+0

Ext.form.CheckboxManager는 이름으로 그룹화 된 모든 Ext.form.field.Checkbox 필드를 관리하기위한 전용 유틸리티 클래스입니다. (ExtJS 4.0.1 문서에서). –

답변

2

이것은 의도적 인 것입니다. CheckboxManager은 싱글 톤이며 일부 랩퍼 기능이있는 "DOM의 모든 체크 박스 모음"이 아닙니다.

원하는대로 (한 그룹의 활동이 다른 그룹에 영향을 미치지 않아야 함) 달성하려면 체크 박스 이름 속성은 여러 확인란 그룹 사이에 고유합니다.

즉, 그룹 A에 "smthng"확인란이있는 경우 그룹 B는 "smthng"를 가질 수 있지만 "smthng"는 가질 수 없습니다. 당신이 사용할 수있는

+0

슬픈 소식 : 실제로 이것은 아주 자연스러운 상황입니다 - 입력 그룹이 같은 이름을 가진 양식으로 다른 창을 제공하는 것입니다. extj가 양식을 범위와 같이 취급한다고 기대하는 것은 매우 논리적입니다. – shabunc

1

이 시도 :

var a = new TestA().createCheckboxes().items.get(0); 
    var b = new TestA().createCheckboxes().items.get(0); 
    console.log(a, b, a === b); 

    var c = new TestA().createCheckboxes().items.length; 
    var d = new TestA().createCheckboxes().items.length; 
    console.log(c, d); 

Ext.form.CheckboxManager 모든 관리를위한 개인 유틸리티 클래스이기 때문에 Ext.form.field.Checkbox 필드는 이름별로 그룹화됩니다. (ExtJS 4.0.1 문서에서), 나는 당신이 생각하는 어떤 문제도 없을 것이라고 생각합니다.

+0

죄송 합니다만, 저는 의문의 여지가 없다고 생각합니다. 질문은 - 왜 내가 공유 할 것이 없다고 가정 된, 개별적으로 만들어진 인스턴스가 실제로 공통 관리자를 공유하고 있는지입니다. 그것은 다소 짜증나고, 반 직관적이며, 또한 역동적 인 형태의 생성을 어렵게 만듭니다. – shabunc