2014-04-11 4 views
0

표면을 통해 모양 개체를 만들었습니다. 이제는 맞춤 설정 상태를 설정하고자합니다.dojo gfx 모양에 사용자 정의 속성을 안전하게 정의하는 방법은 무엇입니까?

var rect = surface.createRect(...); 
rect.myCustomData = ...; 

및 도장 또는 GFX의 어떠한 부분도 정확히 같은 속성 이름을 기대하고있는 논리가 없습니다 희망 : 나는 가장 간단한 방법으로 그것을 할 수 있습니다.

dojo가 생성 한 오브젝트에 사용자 정의 데이터를 안전하게 정의 할 수있는 방법이 있습니까?

P.

나는 속성 이름으로 GUID를 사용하여 속성 백을 정의 할 수 있습니다. 하지만 못 생겼어?

답변

0

JavaScript의 다른 부분이 해당 속성에 의존하는지 확인하는 방법은 없습니다. 당신은 항상 덮어 쓰기 전에 존재하는 경우, 예를 들어, 유효성을 시도 할 수 있습니다 :

var rect = surface.createRect({ 
    // Properties 
}); 
if (rect.myCustomData === undefined) { 
    rect.myCustomData = myValue; 
} 

을하지만 당신은 여전히 ​​100 % 확신, 어쩌면 응용 프로그램의 일부가 아닌 기존 될 재산에 의존한다. 그것이 사실이 아니더라도, 당신의 재산은 여전히 ​​무시 될 수 있습니다. 찾고,

var rect = surface.createRect({ 
    // Properties 
}); 

var myCustomData = [ ]; 
myCustomData.push({ 
    shape: rect, 
    data: myValue 
}); 

당신이지도를 통해 루프해야합니다 데이터를 검색하려면 :


또 다른 방법은 같은 것을함으로써 별도의 예를 들어, 사용자 정의 데이터를 포함하는 "지도"를 제공하는 것입니다 shape 속성이 모양과 일치하면 data 속성 안의 데이터를 검색합니다.

그런 다음 다른 프레임 워크가이 프레임 워크에 의존 할 수는 없겠지만 모양을 만들거나 업데이트하거나 삭제할 때 두 개의 개별 파트를 유지해야한다는 것을 의미합니다.

+0

답변은 도장 특정 수 있습니다. 사용자 정의 데이터를 보관할 수있는 고리가 있습니다. – mark

+0

그게 아닌가 걱정됩니다. 그 때 그것은 직사각형의 API 문서에서 목록으로 만들어야한다 : http://dojotoolkit.org/api/1.9/dojox/gfx.Rect.html – g00glen00b

관련 문제