2014-12-18 6 views
0

나는 다음과 같은 인스턴스를 가지고있다. 나는 스위치에 새로운 하위 노드를 추가하기 위해 다음과 같은 것을 사용했지만, 내가 말할 수있는 한이 같은 메소드는 속성 만 추가하는 것은 불가능하다. 이 트리거는 xf:repeat 블록이며, "바"요소가 특정 스위치 추가되면 사라질 :추가 속성은

<xf:trigger ref=".[not(bar)]"> 
    <xf:label>Add "bar" Element</xf:label> 
    <xf:insert ev:event="DOMActivate" context="../switch[index('switch-repeat')]" 
     nodeset="foo" at="foo" position="after" 
     origin="instance('presets')/bar"/> 
</xf:trigger> 

나는 또 다른 인스턴스로 스위치 소자의 내용을 복사에 대한 생각을 해 봤는데 <switch enabled="true/>과 같은 속성을 사용하고 원본을 그 것으로 바꾸지 만 작업에 약간의 어색함이있는 것처럼 보입니다. 어쨌든 ID 속성을 보존하기 위해 동일한 작업을 수행해야 할 수도 있습니다.

답변

0

Alain의 의견을 바탕으로 XForms 표준에서 요소로 속성 목록을 복사하기 위해 this mention을 발견했습니다. 이것은 정확히 내가 원하는 방식으로 작동합니다.

코드 나 속성을 추가 사용하고는 다음과 같습니다 : instance('presets')/switch<switch enabled="true"/>입니다

<xf:trigger ref=".[not(@enabled)]"> 
    <xf:label>Add "enabled" attribute</xf:label> 
    <xf:insert ev:event="DOMActivate" context="../switch[index('switch-repeat')]" 
     origin="instance('presets')/switch/@enabled"/> 
</xf:trigger> 

.

0

XForms 1.1에서는 요소 나 속성을 만들지 않고 다른 곳에서 복사하는 것을 허용합니다.

XForms 2.0 않습니다. 구현에는 이미 자체 확장이있을 수 있습니다.

+0

다른 요소의 속성 만 복사 할 수있는 방법이 있습니까? 그게 내 문제를 해결해 줄거야. – AgentCid