2

我用我的 ajaxCall 返回一个数组,如下所示: http ://d.pr/i/ojR4

对象内部是 Json(例如:http : //d.pr/i/aAM2)当我将它推送到我的 .hbs 文件(骨干网)时,不可能循环通过它,因为它是一个数组,它只接受普通的JSON。

有没有办法将它完全转换为 JSON?

我在下面的视图中的渲染函数:

render: function(){
    var self = this;
    var tripData;
    console.log("[TripListView] render");
    $.ajax({
        url: Util.api + "/getalltrips",
        type:"GET",
        success: function(data){
            console.log(data); // This is the output given
            tripData = data;

        }, error:function(){
            console.log(arguments);
        }
    });
    $('#container').html(this.template({trips: data}));
    return this;
}
4

2 回答 2

1

如果您不能发送一个数组,请将其包装在一个对象中并使用它。但原因可能是因为在 AJAX 调用之外访问数据。

$('#container').html(this.template({trips: data}));<-- here data would be undefined

尝试这个:-

 var self = this
 success: function(data){
            console.log(data); // This is the output given
            tripData = {tripsResponse:data};// You probably don't need this since your actual issue might be accessing `data`  below the ajax call.
            $('#container').html(self.template({trips: tripData })); // I have moved this here since placing this after ajax call doesn't make sense, as it would have got executed before your callback.
        }
       //....
于 2013-05-23T00:38:49.763 回答
0

我不确定你的问题是什么,但我会猜测一下。如果您创建一个Dictionary<object, object>并将您的键设置为像“数据”这样的字符串并将值设置为您的数组,那么当您对其进行序列化时,您将获得一个 JSON 对象。这是一个简短的示例:

var theList = new List<string>();
var theDict = new Dictionary<string, object>();
theDict.Add("data", theList);
于 2013-05-23T00:42:30.737 回答