编辑 - backbone.js初学者试图加载数据

时间:2013-05-02 18:58:14

标签: backbone.js

试图发布一个初学者问题,但没有超过"质量标准"过滤。 我通读了错误消息中的线程。初学者问题是否太基础?可以理解,但将它放在错误消息中可能会更好。我包含我的代码,我的英语在代码块之外是正确的。这个问题没有得到解决,或者至少没有从各种搜索模式中返回。无论如何都要对过滤器提出上诉,因为多次重写没有解决障碍或解决了我的,不可否认的初学者问题?在最后一次试图破解过滤器的尝试中,我只是简单地用一些英文编辑来粘贴我原来的问题。编辑 - 这似乎有效,但在上面的段落中没有jinx它。

尝试将数据加载到骨干网中但渲染功能未触发。 Firebug显示GET到达时使用正确的数据字符串。 我试图分配"这个"以变​​量和火为功能但仍然没有运气。

(function($) {
var DObj = Backbone.Model.extend({
    defaults: {
        dstring: 'dstring again'
    },
});

var MObs = Backbone.Collection.extend({
    defaults: {
        model: DObj
    },
    model: DObj,
    url: 'scr/bbone.php'
});

var MView = Backbone.View.extend({
    initialize: function() {
        this.collection = new MObs();
        //this.collection.bind("reset", this.render, this);
        this.collection.on("sync", this.render, this);
        //this.collection.bind("change", this.render, this);
        this.collection.fetch();
    },
    render: function() {
        alert("here : ");
    }
});
var newMob = new MView();

})(jQuery);

1 个答案:

答案 0 :(得分:1)

我用mockjax重写代码来模拟来自服务器的响应,这里是:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-mockjax/1.5.1/jquery.mockjax.min.js"></script>

<script>

var DObj = Backbone.Model.extend({
});

var MObs = Backbone.Collection.extend({

    model: DObj,
    url: '/movies'
});

$.mockjax({
   type: 'GET',
   url: '/movies',
   contentType: 'text/json',
   status: 200,
   response:  function() { 
      this.responseText = JSON.stringify(new MObs([{ name: 'Lincoln' }, { name: 'Argo' }])); 
   }
});

var MView = Backbone.View.extend({
    initialize: function() {
        this.collection.on("sync", this.render, this);
    },
    render: function() {
        alert("here : ");
    }
});

(function($) {
   var newCol = new MObs();
       newMob = new MView({ collection: newCol });

   newCol.fetch({ 
      success: function () { console.log('Success'); },
      error: function() { console.log('Error'); }
   });

})(jQuery);

我认为代码存在许多问题,您特别要求的问题与服务器响应有关;您应该看到上面代码的提醒。我建议你阅读其他人的backbone.js文档。