8.5.3 UP1 사용. 나는 "숨기기/숨기기"또는 더 정확하게 xpages "show/ifs"에 사용하고있는 SSJS 스크립트 라이브러리에 문제가 있습니다. 어쨌든 전역 변수는 스크립트 라이브러리를 마지막으로 저장 한 시간의 가치를 갖는 것처럼 보입니다. 그들은 문서 현재 값을 기반으로 계산하는 것 같지 않습니다. 이것은 알려진 것입니까 (분명히 저에게 알려지지 않았습니다.).SSJS 스크립트 라이브러리의 전역 변수가 예상대로 작동하지 않습니다.
예 XPage :
<xp:this.resources>
<xp:script src="/ssjsVisTest.jss" clientSide="false"></xp:script>
</xp:this.resources>
<xp:inputText id="inputText1" value="#{document1.StatusTX}"></xp:inputText>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:button value="Save" id="SaveBtn">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action>
<xp:saveDocument var="document1"></xp:saveDocument>
</xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:label id="label1" value="Status is Draft"
rendered="#{javascript:statusVisibleDraft()}">
</xp:label>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:label id="label2" value="Status is Pending"
rendered="#{javascript:statusVisiblePending()}">
</xp:label>
<xp:br></xp:br>
<xp:br></xp:br>
</xp:view>
샘플 SSJS 스크립트 라이브러리 :
var status = document1.getItemValueString('StatusTX');
function statusVisibleDraft() {
x = (status == "Draft") ? 1 : 0;
if(x > 0) {
return true;
} else {
return false;
}
}
function statusVisiblePending() {
x = (status == "Pending") ? 1 : 0;
if(x > 0) {
return true;
} else {
return false;
}
}
어떤 아이디어 다음은 샘플 페이지와 스크립트 라이브러리는 문제를 설명하는 것입니다? 감사합니다
불행히도 내가 작업하고있는 hide/when은 단순히 필드 x = value x보다 훨씬 복잡합니다. 예제에서 사용하고있었습니다. 그들은 일반적으로 평가할 3 가지 또는 4 가지 조건을 가지고 있습니다. viewScope 변수가 아마 길일 것이라고 생각합니다. 정보 주셔서 감사합니다. –
Dan,이 경우 hideWhen 결과 및 기타 비즈니스 로직을 제공하는 백업 빈을 사용하는 것이 좋습니다. viewScope 관리 Bean을 사용하여 문서를 Bean에 저장하지 않을 때 염두에 두십시오. [FieldName]을 가져오고 [FieldName] 속성과로드 (unid), save() 함수 (unid가 새 문서로 채워지지 않은 경우) 및 setDBURL()을 사용하여 현재 데이터베이스의 기본값을 덮어 쓸 수 있습니다. – stwissel