1

我正在使用https://github.com/PaulUithol/backbone-tastypie的主干-tastypie ,但我无法获取集合数据。那是我的代码:

var User = Backbone.Model.extend({
  url: '/api/v1/user'
});


var HoraExtra = Backbone.Model.extend({
  url: '/api/v1/horasextra/'
});


var HorasExtra = Backbone.Collection.extend({
  url: '/api/v1/horasextra/',
  model: HoraExtra
});

var Horas = new HorasExtra();

var activeUser = new User();

var HorasExtraView = Backbone.View.extend({

initialize: function() {
  _.bindAll(this, "render");
},

render: function() {
  var plantilla = Handlebars.compile($("#horas_extra_template").html());
  var html = plantilla(Horas);
  this.$el.html(html);
  console.log(JSON.stringify(Horas));
  }
});

var HorasExtraWidget = new HorasExtraView({el: $('#base')});

Horas.fetch({
 data: {
    "usuario__id": 2,
    "hor_com__month": 11
  }
});

HorasExtraWidget.render();

这就是 console.log(JSON.stringify(Horas) 的结果:

[]

非常感谢

4

2 回答 2

2

我建议你在 1 到 2 天内使用美味的派,主干并构建自己的简单项目。然后您将了解耦合这两个框架的基本问题。如果没有这些知识,您尝试其他人的项目然后想知道“什么不起作用”是没有意义的。

从我个人的经验来看,tasticpie 和 javascript 都非常简单,而且很容易结合。

而且我不是专家。

几点:尝试使用 fetch 显式获取模型,从成功回调中操作获取的模型,并查看模型 url,其中的正斜杠等。

看来你的收藏是空的。

如果有对服务器的 GET 调用,请在控制台中查看。如果没有,您实际上并没有从服务器获取任何内容。

于 2012-11-13T11:36:45.173 回答
0

我用了https://github.com/amccloud/backbone-tastypie然后你的代码应该是这样的,我猜。未测试。

var HorasCollection = Backbone.Tastypie.Collection.extend({
  url: '/api/v1/horasextra/'
});

var HorasExtraView = Backbone.View.extend({
    el: $('#base'),
    entries: new HorasCollection(),
    render: function() {
        var that = this;
        this.entries.fetch({
            success: function(entries){
                console.log("Entries", entries.models);
                // var t = _.template(template, {hello: 'world'});
                // that.$el.html(t);
            },
            error: function(model, response){
                console.log("Error", response);
            }
        });
    }
});

如果您尝试为数据创建表,请尝试我的 jquery 插件 :) https://github.com/sspross/tastybackbonepie

于 2013-03-18T12:14:00.807 回答