簡體   English   中英

將JavaScript從Rails控制器加載到javascript文件中的d3 .defer()函數

[英]load JSON from rails controller to d3 .defer() function within javascript file

我有一個使用D3制作帶有城市的地球儀的Rails應用程序。 當前,城市的數據位於一個名為places.json的靜態json文件中。 然后,通過此代碼段將places.json文件呈現到資產/ javascript中的其余d3代碼

 queue()
.defer(d3.json, "/assets/world-110m.json")
.defer(d3.json, "/assets/places.json")
.await(ready);

我想將控制器替換為“ /assets/places.json”文件,該控制器會重載動態json。 我目前正在使用控制器,並且有一個發布請求,可以將json獲取到下面的javascripts文件中。

$.post( "/teams/to_geo_json", function( data ) {
   alert( JSON.stringify(data) );
});

/teams/to_geo_json是控制器的路徑。 但是,當我將控制器路徑放入.defer(d3.json, "/assets/places.json")它不起作用,我也不知道如何獲取$.post("/teams/to_geo_json")...調用以使用d3.js其余代碼。

事實證明,我在延期中遇到404錯誤。 在我的路線上,我有一個

   post "/teams/to_geo_json" => "teams#to_geo_json"

在控制台中,它要求從defer()獲取get方法。 我將上面的路線更改為:get“ / teams / to_geo_json” =>“ teams#to_geo_json”

更改之后,我仍然遇到問題localhost:3000/teams/to_geo_json轉到localhost:3000/teams/show/id ,它認為to_geo_json是它當然找不到的id。 所以它出錯了。 為了解決這個問題,我把

 get "/teams/to_geo_json" => "teams#to_geo_json"

以上

resources :teams, :only => [:index, :show] do
   resources :users, :path => :teammates, :as => :teammates, :controller =>    "teammates"
 end

在我的routes.rb文件夾中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM