我正在尝试将一些 json 数据提取到 Backbone 集合中,而不是在渲染 View 时尝试在屏幕上显示。 问题是,我无法通过点击遍历 json 数据中列出的所有公司,即使它们显示在 console.log 上。我得到的唯一输出只是 json 数据中列出的第一家公司。我尝试使用每个功能但没有取得多大成功。
<div class="test">Click</div>
<div class="new_test"></div>
<script>
var myModel = Backbone.Model.extend();
var myCollection = Backbone.Collection.extend({
model: myModel,
url : "myjson.json",
parse : function(response){
return response.employees;
}
})
var jobs = new myCollection();
var myView = Backbone.View.extend({
el:'body',
initialize : function(){
jobs.fetch();
this.render();
},
events:{
'click div.test':'render'
},
render : function(){
jobs.each(function(myModel){
var _comp = myModel.get('company');
$('div.new_test').html(_comp);
console.log(_comp);
return this;
})
}
})
var yourView = new myView();
// json Data
{
"employees": [
{ "company":"ford" , "Type":"Doe" },
{ "company":"jaguar" , "Type":"Smith" },
{ "company":"merceded" , "Type":"Jones" }
]
}
最佳答案
那是因为这一行
$('div.new_test').html(_comp);
它会覆盖 HTML
您需要附加文本..您可以使用append
方法代替
$('div.new_test').append(_comp);
<强> Check Fiddle
关于javascript - 使用 Backbone Collection 时无法每次通过 Jquery 输出所有 JSON 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17310241/