Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Backbone.js获取和解析的问题_Javascript_Jquery_Ajax_Backbone.js_Underscore.js - Fatal编程技术网

Javascript 使用Backbone.js获取和解析的问题

Javascript 使用Backbone.js获取和解析的问题,javascript,jquery,ajax,backbone.js,underscore.js,Javascript,Jquery,Ajax,Backbone.js,Underscore.js,我尝试获取此服务器: 到backbone.js集合。 然后我尝试console.log,但它不起作用。 这对我很重要,请帮忙 新闻:我发现这与JSONP有关。我很高兴听到更多关于这方面的信息。谢谢 简而言之,这是我代码的一部分: window.ProjectList = Backbone.Collection.extend({ model: Project, url:"http://cshosting.webfactional.com/api/v1/projects",

我尝试获取此服务器: 到backbone.js集合。 然后我尝试console.log,但它不起作用。 这对我很重要,请帮忙

新闻:我发现这与JSONP有关。我很高兴听到更多关于这方面的信息。谢谢

简而言之,这是我代码的一部分:

window.ProjectList = Backbone.Collection.extend({

    model: Project,

    url:"http://cshosting.webfactional.com/api/v1/projects",

    parse: function(response) {
         return response.objects;
  }


});
另一部分:

window.HomeView = Backbone.View.extend({

    initialize:function () {
        this.projectList = new ProjectList();
        this.projectList.fetch({success : function() {console.log(this.projectList);    }});


        this.homeListView = new HomeListView({model: this.projectList});
    }

});

fetch
回调上的
this
不会引用您的
HomeView
实例。尝试使用另一个变量以确保引用的是所需的对象

initialize:function () {
    var self = this;
    this.projectList = new ProjectList();
    this.projectList.fetch({success : function() {console.log(self.projectList);    }});


    this.homeListView = new HomeListView({model: this.projectList});
}

如果这不能解决问题,请描述发生了什么。使用webkit inspector的网络选项卡确保调用了正确的GET请求和响应。确保调用了
parse
函数,并且
response
对象是您所期望的对象。

您似乎希望执行类似的操作:

window.Project = Backbone.Model.extend({
url:"http://cshosting.webfactional.com/api/v1/projects/?format=json" 

}); 

window.ProjectList = Backbone.Collection.extend({

model: Project,
url:"http://cshosting.webfactional.com/api/v1/projects/?format=json"

});

window.HomeView = Backbone.View.extend({

initialize:function () {
    _.bindAll(this, 'render');
},

render: function(){
    var self = this;
    console.log(self.collection);
    return this; 
}

});

var project = new Project();
var collection = new ProjectList();
collection.fetch({
        success: function(result_collection, resp) {
            var view = new HomeView ({  collection: result_collection });
            view.render();
        }
 });

访问集合的另一种方法是将集合和响应参数提供给成功回调<代码>成功:函数(收集,响应){console.log(收集);console.log(响应);}这个不是
这个
我认为这是个问题”的牺牲品。有些人喜欢
that
而不是
self
,但我在彼得的阵营里,喜欢使用
self
;-)嘿我发现这和JSONP有关。我很高兴听到更多关于这方面的信息。谢谢。我看到您正在创建一个新的homeListView并将其传递到
模型中:this.projectList
,但是,
this.projectList
是一个集合。不是模特儿。怎么了?嘿。我发现这和JSONP有关。我很高兴听到更多关于这方面的信息。谢谢。啊,很有趣。你能试着把链接改成吗?看看这是否有帮助?