渲染Backbone.js中返回的已获取JSON数据

时间:2015-07-18 06:32:17

标签: javascript json backbone.js

我是Backbone.js的新手,所以请耐心等待。

我有以下代码正确提取JSON onSearchClicked。我可以在控制台视图中看到JSON。我想将检索到的responseJSON呈现给视图或通过现有模型(在car_view.js下)传递数据 - 所以我可以在HTML页面上查看。我怎样才能做到这一点?

任何帮助都非常感激。

view.js
--------------
var View = Backbone.View.extend({
  tagName: 'div',
  ranking: 0,

  events:{
    'click .search-button': 'onSearchClicked'
  },

  onSearchClicked : function(){
     var searchString = $('.search-field input').val();
     $('#gallery ul').empty();
     var search = new carCollection([], {query: searchString});
     search.fetch( {success: this.searchResults.bind(this) });
     console.log(search.fetch());
  },

},

search_collection.js
--------------

var Backbone = require('backbone');
var BurgerModel = require('../models/car');

var CarCollection = Backbone.Collection.extend({
    model:CarModel,
    initialize : function(models, options){
        this.query = options.query;
    },
    url: function(){
        return "/api/cars?name="+this.query;
    }
});

module.exports = CarCollection;

car_view.js
--------------

carCard: function( burger ){
    var carView = new CarView({
      model: car
    });

    this.$el.append( carView.el );
},

1 个答案:

答案 0 :(得分:0)

有一个错字 - Make' C'这条线上的资本:

var search = new carCollection([], {query: searchString});

我不打算提供工作代码,但我可以为您提供步骤:

  1. 请创建一个新类CarList,它应该引用CarCollection
  2. 当用户输入搜索查询时,应该调用CarList的方法,您应该在其中调用fetch of collection
  3. 成功回调fetch会调用方法renderCars
  4. 内部renderCars对于每个搜索结果,创建一个CarView实例并在元素中呈现它。
  5. 希望这是你想要的。如果您正在寻找确切的代码,那么没有人会帮助您!