-1

尝试发布初学者问题,但未通过“质量标准”过滤器。我通读了错误消息上的线程。初学者的问题太基础了吗?可以理解,但最好将其放在错误消息中。我包含了我的代码,并且我的英语在代码块之外是正确的。该问题尚未得到解决,或者至少没有从各种搜索模式中返回。无论如何,由于多次重写没有清除障碍或解决我公认的初学者问题,是否有上诉过滤器?在最后一次尝试破解过滤器时,我将我的原始问题粘贴在下面,并进行了一些仅限英文的编辑。编辑 - 这似乎已经奏效,但留下上面的段落不要让它陷入困境。

尝试将数据加载到主干中,但渲染功能未触发。Firebug 显示 GET 带有正确的数据字符串。我试图将“this”分配给一个变量并作为一个函数触发,但仍然没有运气。

(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);
4

1 回答 1

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 文档。

于 2013-05-03T06:56:27.043 回答