Mar*_*son 2 javascript codeigniter backbone.js
当我尝试从服务器获取数据到我的Backbone模型时,我遇到了问题.你JSON从服务器得到一个响应,我认为看起来是正确的格式.你能看到它有什么问题吗?看起来像:
[{"id":"1","name":"Fawad Hassan","email":"fawad@test.com"},{"id":"2","name":"Bill
Gates","email":"bill@test.com"},{"id":"3","name":"Steve
Jobs","email":"steve@test.com"},{"id":"4","name":"Naveed
Ahmad","email":"naveed@test.com"},{"id":"5","name":"Mr Zee","email":"zee@test.com"}]
Run Code Online (Sandbox Code Playgroud)
我的Backbone项目代码看起来像这样,我也找不到问题.
window.AppModel = Backbone.Model.extend({
url: function() {
return 'http://dev.local/ci/index.php/site/userpost';
}
});
window.AppContr = Backbone.Collection.extend({
model: AppModel,
initialize: function() {
this.model = new AppModel;
}
});
window.App = new AppContr({name: "Markus"});
window.AppView = Backbone.View.extend({
el: $("#content"),
initialize: function() {
this.render();
},
render: function() {
console.log(App.model.toJSON());
}
});
App.model.fetch();
window.View = new AppView;
Run Code Online (Sandbox Code Playgroud)
你fetch在模型上做了一个,但回复了Collection.这是主要问题.
第二个问题是你render在AppView上完全随机地调用,即它与model或没有任何关系collection.也许在model渲染视图时没有任何内容.您应该将渲染绑定到collection或model与之绑定bind.每当你调用fetch你的视图时都会重新渲染,这是Backbone的主要好处之一:)
这里是代码:)
window.Person = Backbone.Model.extend({});
window.Addressbook = Backbone.Collection.extend({
url: 'http://dev.local/ci/index.php/site/userpost',// declare url in collection
model: Person
}
window.Addresses = new AddressBook();
window.AppView = Backbone.View.extend({
el: $('#content'),
initialize: function() {
Addresses.bind('reset', this.render); // bind rendering to Addresses.fetch()
},
render: function(){
console.log(Addresses.toJSON());
}
});
window.appview = new AppView();
Addresses.fetch();
Run Code Online (Sandbox Code Playgroud)