Pregunta

Al solicitar el archivo data.json para la colección de población que tiene por debajo de los datos

[{
    "Id": "BVwi1",
    "Name": "Bag It",
    "AverageRating": 4.6,
    "ReleaseYear": 2010,
    "Url": "http://www.netflix.com/Movie/Bag_It/70153545",
    "Rating": "NR"
}, {
    "Id": "BW1Ss",
    "Name": "Lost Boy: The Next Chapter",
    "AverageRating": 4.6,
    "ReleaseYear": 2009,
    "Url": "http://www.netflix.com/Movie/Lost_Boy_The_Next_Chapter/70171826",
    "Rating": "NR"
}]

La colección no invoca el evento "Restablecer" ya que la documentación dice que debería.Puedo ver la solicitud y la respuesta es correcta después del método de búsqueda, pero no pasa nada.A continuación se muestra el código para mi aplicación. Enrutador que comienza todo

Theater.Router = Backbone.Router.extend({
    routes: {
        "": "defaultRoute"
    },

    defaultRoute: function () {
        Theater.movies = new Theater.Collections.Movies()
        new Theater.Views.Movies({
            collection: Theater.movies
        });
        Theater.movies.fetch();
    }
})
var appRouter = new Theater.Router();
Backbone.history.start();

la colección

Theater.Collections.Movies = Backbone.Collection.extend({
    model: Theater.Models.Movie,
    url: "scripts/data/data.json",
    initialize: function () {}
});

Ver que se suscribe al evento de reinicio

Theater.Views.Movies = Backbone.View.extend({
    initialize: function () {
        _.bindAll(this, "render", "addOne");
        this.collection.bind("reset", this.render);
        this.collection.bind("add", this.addOne);
    },

    render: function(){
        console.log("render")
        console.log(this.collection.length);
    },

    addOne: function (model) {
        console.log("addOne")
    }
})

Sitio de referencia

http://bardevblog.wordpress.com/2012/01/16 / Comprensión-Backbone-JS-Simple-Ejemplo /

¿Fue útil?

Solución

Tuve un problema similar, espero que mi respuesta sea de alguna utilidad para otros.Al principio, mi archivo data.json no era válido.Luego resultó que pasé por alto la siguiente línea de código:

Theater.Models.Movie = Backbone.Model.extend({}

Agregar esta línea de código resolvió el problema.

Otros consejos

Debes decirle a Backbone que active el reinicio al recuperar pasando {reset: true} al recuperar a partir de Backbone 1.0

Reemplazar:

Theater.movies.fetch()

Con

Theater.movies.fetch({reset :true})

Puede haber un problema con la recuperación si la colección no se está completando.Consulte esta respuesta para ver cómo pasar un controlador de errores a la operación de recuperación.

Tengo el mismo problema ... y lo solucioné:

youColloection.fetch({reset: true});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top