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

时间:2014-08-30 09:35:02

标签: ruby-on-rails angularjs

在rails项目中,我有1个控制器和2个模型。我希望从angularjs向rails服务器发送1请求,并为响应,获取2个json数组,1。第一个模型。 2.秒模型。

现在我使用下面的代码,只得到2个数组中的一个:

Rails Contorller:tables_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}
    });
});

我可以在轨道控制器中将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.

但我想要一个解决方案,我将每个阵列分开发送。我怎样才能做到这一点?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

我有点生疏了。所以这可能比ruby更多伪代码;

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

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