我想知道在转换中直接调用服务之间的区别,如
<transition name="createExample">
<service-call name="org.moqui.example.ExampleServices.createExample" in-map="ec.web.parameters"
web-send-json-response="true"/>
<default-response type="none"/>
</transition>
并在
之类的操作标记内调用服务<transition name="createExample">
<actions>
<service-call name="org.moqui.example.ExampleServices.createExample" in-map="ec.web.parameters"
web-send-json-response="true"/>
<actions>
<default-response type="none"/>
</transition>
两种情况下如何处理Web参数?
当我在JSON中发送数组映射时,使用AngularJS作为输入参数,对于这两种情况,它们的解析方式都不同。
当服务调用在actions标记内部或外部时,对于这两种情况,对参数进行了不同的解析。
Parameters in JSON
var parameters = { exampleId : ["example1","example2","example3"]};
ec.web.parameters for service-call in actions tag
exampleId : [example1, example2, example3]
ec.web.parameters for service-call outside actions tag
exampleId : [example1, example2, example3]
列表中的元素将包含操作标记之外的服务的额外空间。
它应该以这种方式工作吗?
答案 0 :(得分:1)
在这两种情况下,您都明确指定要与service-call。@ in-map属性一起使用的in-parameters,因此在此示例中它们都是相同的。当service-call元素直接位于transition元素下(不在actions元素内)且没有指定@ in-map时,它默认为当前上下文,而@ out-map则相同。当service-call在actions元素中时,没有默认值,即如果你想使用上下文或其他一些in-or---map,你必须明确指定它们。
有关屏幕,屏幕转换以及与使用Moqui制作应用程序(可从moqui.org网站下载)中的转换相关联时的表格的更多详细信息。