繁体   English   中英

通过1个请求将2个json从服务器发送到angularjs控制器

[英]Send 2 json from server to angularjs controller by 1 request

在Rails项目中,我有1个控制器和2个模型。 我想将1个请求从angularjs发送到Rails服务器并进行响应,以获取2个json数组,第一个模型。 2.第二个模型。

现在,我使用下面的代码,并仅获得2个数组中的1个:

Rails tables_controller.rbtables_controller.rb

class Api::V1::TablesController < Api::V1::BaseController
  def index
    @table = Table.all
    @mostagheltype = Mostagheltype.all
    //I can just send 1 of model.
    respond_with(Table.all)
  end
end

Angularjs控制器: table.js

$scope.tables = Tables.index();

tableService.js

'use strict';
var app = angular.module('tableService', ['ngResource']);

app.factory('Tables', function($resource) {
    return $resource('/api/tables.json', {}, {
        index: { method: 'GET', isArray: true}
    });
});

我可以在rails控制器中以1个数组推送2个表,然后从角度控制器中接收它,如下所示:

array = []

Table.all.each do |table|
  array << { name: table.name, check: 1 }
end
Mostagheltype.all.each do |m|
  array << { name: mostagheltype.name, check: 2}
end
//I can seprate 2 array by `check` value in angularjs part.

但是我想要一个将每个数组单独发送的解决方案。 我怎样才能做到这一点? 任何想法?

简短回答 您不能对一个请求有两个响应。 您可以使用包含两个数组的对象进行响应。

我有点生锈。 因此,这可能比Ruby更像是伪代码;

obj  = {} 
obj.array1 =[] 
obj.array2 =[] 

然后填充每个数组并返回对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM