0

このサーバー( http://cshosting.webfactional.com/api/v1/projects/?format=json) を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});
    }

});
4

2 に答える 2

1

コールバックのthisonは、インスタンスfetchを参照しません。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インスペクターの[ネットワーク]タブを使用して、正しいGET要求と応答が呼び出されていることを確認します。parse関数が呼び出されており、responseオブジェクトが期待どおりであることを確認してください。

于 2012-08-20T03:32:01.613 に答える
0

次のようなことをしたいと思うようです。

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();
        }
 });
于 2012-08-20T04:56:08.423 に答える