0

单击 div 时尝试获取 JSON 数据,但无法看到输出。我正在使用 Backbone Collection 来提取 json 数据。试图将 json 数据输出到控制台以及另一个 div 中。下面还列出了 json 文件中的内容。

<div class = "test">Click </div>
<div class = "new_test">  </div>

JS

var myModel = Backbone.Model.extend();

var myCollection = Backbone.Collection.extend({

  model: myModel,
  url : "myjson.json"

})

var jobs = new myCollection();

var myView = Backbone.View.extend({

  el : 'div',
  events : {

    'click div.test' : 'render'
  },
  initialize : function(){

    jobs.fetch();

  },
  render : function(){

    jobs.each(function(myModel){

      var _comp = myModel.get('company');

      $('div.new_test').html(_comp);

      console.log(_comp)
    })

  }
})

json文件:

[
 {
    "company": "Ford",
    "Type": "Automobile"
 },
 {
    "company": "Nike",
    "Type": "Sports"
 }
]
4

2 回答 2

1

您必须调用视图的渲染函数才能看到结果。您不能实例化集合对象并期望看到结果。

代码尚未经过测试。

var myView = Backbone.View.extend({


el : 'div',
events : {

    'click div.test' : 'render'
        },
initialize : function(){

    jobs.fetch();
    this.render();

},
render : function(){

    jobs.each(function(myModel){

    var _comp = myModel.get('company');

     $('div.new_test').html(_comp);

    console.log(_comp)
    })

}
})

var yourView = new myView();
于 2013-06-18T10:38:36.543 回答
0

几周前我也有同样的问题。

检查您的 JSON 的路径。例如,当您具有这样的目录结构时:

   -js
     - collection 
        collection.js
     - json
        myjson.json

骨干集合你这样设置:

       url: 'js/json/event.json',

检查 Firefox,在 Chrome 中,我们有一个跨浏览器的想法并检查:

          jobs.fetch({
                reset: true,
                success: function (model, attributes) {
                   //check here if json is loaded
                }
            });
于 2013-06-18T09:48:37.780 回答