2015-01-07 56 views
2

我实际上正在对来自AngularJS的转换进行JSON-RPC调用。由于请求的内容类型为application/json,输入参数在上下文中自动提供,因此我不需要明确处理它。如何处理Moqui中的JSON响应?

这是我的请求“getUsers”这是在“教程”组件。

function($scope, $http) { 
    $http ({ 
     url: 'tutorial/getUsers', 
     method: "POST", 
     data: JSON.stringify({username:'demouser1'}), 
     headers: {'Content-Type': 'application/json'} 

    }).success(function(response){ 
     $scope.userList = response; 
    }); 
}]); 

,转变的代码编写如下

<transition name="getUsers"> 
    <actions> 
     <service-call name="Tutorial.PartyServices.get#Users" in-map="context"/> 
    </actions> 
    <default-response type="none"/> 
</transition> 

服务看起来是这样的

<service verb="get" noun="Users"> 
    <in-parameters> 
     <parameter name="username"/> 
    </in-parameters> 
    <actions> 
     <entity-find entity-name="PersonAndUserAccount" list="userList"> 
      <search-form-inputs default-order-by="firstName,lastName,username"/> 
      <econdition field-name="username" operator="equals" to-field-name="username"/> 
     </entity-find> 
     <script>ec.web.sendJsonResponse(userList)</script> 
    </actions> 
</service> 

我们发送JSON响应我的服务本身写道ec.web.sendJsonResponse(userList)。这使服务与期望JSON作为响应的服务调用紧密结合。如果我想在内部调用这个服务,即在Moqui中,我将不得不定义另一个服务。

所以我的问题是我可以处理这个响应在这个服务调用的过渡吗?

回答

4

以下是可用于在转换中提及JSON响应的示例。你可以参考ExampleApp.xml。

以下是供您参考的代码片段。

<transition name="ExampleEntity" method="post"> 
    <service-call name="org.moqui.example.ExampleServices.createExample" in-map="ec.web.parameters" 
     web-send-json-response="true"/> 
<default-response type="none"/> 
</transition> 

HTH。

谢谢