Backbone视图没有获取JSON对象

时间:2014-03-06 15:12:46

标签: javascript ruby-on-rails json backbone.js model-view-controller

在前端制作带有Backbone的Rails应用程序。有两个Backbone模型,出版物和文章。我在渲染我的一个Backbone视图时遇到问题。这是给我一个问题的代码:

SimpleGoogleReader.Views.PublicationsIndex = Backbone.View.extend({

  template: JST['publications/index'],

  el: '#publication',

  events:{
    'click #new_feed': 'createFeed'
  },

  initialize: function() {
    this.listenTo(this.model, "sync", this.render);
  },

  render: function(){
    this.$el.html( this.template({publications: this.model.toJSON()}) );
    return this;
  },

  createFeed: function(e){
    e.preventDefault();
    var feed_url = $('#new_feed_name').val();
    // var that = this;

    this.model.create(
      {url: feed_url},
      { success: function(data){
          $.post('/articles/force_update', {url: feed_url, publication_id: data.id}, function(data){
          });
        }
      }
    );

  }

});

我知道渲染函数正在调用,当我在console.log(this.model.toJSON())时,它不会返回JSON对象。但是,渲染函数在文章视图中工作正常:

SimpleGoogleReader.Views.ArticlesIndex = Backbone.View.extend({

  template: JST['articles/index'],

  el: '#article',

  initialize: function() {
    this.listenTo(this.model, "sync", this.render);
  },

  render: function(){
    console.log(this.model.toJSON());
    this.$el.html( this.template({articles: this.model.toJSON()}) );
    return this;
  }

});

**编辑**这里是我实例化视图的路由器:

SimpleGoogleReader.Routers.Publications = Backbone.Router.extend({
  routes: {
    '': 'home',
    'all_articles': 'get_all_articles',
    'publications/:id': 'articles_by_id',
    'publications/:id/delete': 'delete_publication'
  },

  home: function(){

    var publications = new SimpleGoogleReader.Collections.Publications();
    var articles = new SimpleGoogleReader.Collections.Articles();
    var pubIndex = new SimpleGoogleReader.Views.PublicationsIndex({model: publications});
    var artIndex = new SimpleGoogleReader.Views.ArticlesIndex({model: articles});

    articles.listenTo(publications, "sync", function(){
      articles.fetch( {success: function(){}} );
    });

    publications.fetch();

  },

关于差异可能存在的任何想法?

0 个答案:

没有答案