我在流程中遇到了一个问题。我正在尝试将ProcessFlowLaneHeader的状态设置为正,但是我看不到绿色的节点。你能帮我解决这个问题吗?下面是我尝试过的代码。
<ui:ProcessFlow class="processFlow" scrollable="false" showLabels="false">
<ui:lanes>
<ui:ProcessFlowLaneHeader iconSrc="sap-icon://order-status" text="Apply" press="onNodeLeaveApply"
state="{[sap.suite.ui.commons.ProcessFlowNodeState.Positive]}" position="0"/>
<ui:ProcessFlowLaneHeader state="{[sap.suite.ui.commons.ProcessFlowNodeState.Positive]}" iconSrc="sap-icon://customer" text="Review"
press="onNodeLeaveReview" position="1"/>
<ui:ProcessFlowLaneHeader state="{[sap.suite.ui.commons.ProcessFlowNodeState.Positive]}" iconSrc="sap-icon://inventory" text="Sent"
press="onNodeLeaveSent" position="2"/>
</ui:lanes>
</ui:ProcessFlow>
请检查这里的截图,我无法获得绿色的节点。
当我试图通过按下节点来更改控制器中的节点时,它变成了灰色(中性)。下面是我的控制器代码。
onNodeLeaveApply:function(oEvent){
oEvent.mParameters.oParent.mAggregations.lanes[0].setState(["sap.suite.ui.commons.ProcessFlowNodeState.Positive"]);
},
请告诉我如何才能将状态更改为绿色(肯定)
提前谢谢你
发布于 2018-02-10 02:00:02
很抱歉,第一个答案是草率和不正确的。state属性实际上是一个由{ state,value }对组成的数组。"press“的事件处理程序可以访问作为事件源的ProcessFlowLaneHeader,因此应该将oEvent.mParameters.oParent.mAggregations.lanes行更改为oEvent.getSource():
onNodeLeaveApply: function(oEvent) {
oEvent.getSource().setState([{
state: sap.suite.ui.commons.ProcessFlowNodeState.Positive,
value: 20
},
{
state: sap.suite.ui.commons.ProcessFlowNodeState.Negative,
value: 10
}]);
}
您可以使用字符串“sap.suite.ui.commons.ProcessFlowNodeState.Negative”和"Positive“来代替sap.suite.ui.commons.ProcessFlowNodeState.Positive或Negative,结果相同:
onNodeLeaveApply: function(oEvent) {
oEvent.getSource().setState([{
state: "Positive",
value: 20
},
{
state: "Negative",
value: 10
}]);
}
https://stackoverflow.com/questions/48706746
复制相似问题