【发布时间】:2017-09-26 14:26:44
【问题描述】:
我是 Rails 新手。我正在尝试使用 ajax 并调用控制器方法。控制器方法创建一个实例变量,我认为它可用于 ajax 中的成功回调。
但是,每当我运行代码时,JS 控制台都会出现“test_array is null”错误。请提出解决方案并深入了解正在发生的事情。代码如下。
我已经在互联网上彻底研究了这个问题(包括 SO),但似乎没有一个答案适合我的问题。
sentiscores_controller.rb
def render_phrase
@tag_cloud_temp = [{text: 'Hello', weight: 1000},{text: 'World!', weight: 1100}]
end
index.html.erb
$.ajax({
type: 'GET',
url: '/sentiscores/render_phrase',
data: {'senti_score': 5},
success: function(){
var test_array = <%= raw @tag_cloud_temp.to_json%>;
console.log(test_array[0]['text']);
},
error: function(exception){
console.log("Error! : "+exception);
}
})
实际的html源码如下所示
$.ajax({
type: 'GET',
url: '/sentiscores/render_phrase',
data: {'senti_score': 5},
success: function(){
var test_array = null;
console.log(test_array[0]['text']);
},
error: function(exception){console.log("Error! : "+exception);}
})
【问题讨论】:
-
如果你只记录整个数组,输出是什么?
console.log(test_array) -
实际生成的 JavaScript 代码是什么样的?
-
@jon1467 如果我记录它给出的完整数组 - 在 JS 控制台上为 null。
-
@AndEnthu:请在问题中包含相关代码,然后表明问题已在之后更新。
-
@David 添加了 html 源代码。此外,ajax 函数被调用作为对使用 highcharts 的堆叠条形图的点击的响应。
标签: javascript jquery ruby-on-rails ajax