Ich entwickle eine Anwendung für Android mit erfordern js und Backbone. Ich muss ein Modell aus einer Sammlung per Touchend Event an den Router übergeben. Wie kann ich es tun?Backbone ein Modell an Router
define(["jquery", "underscore","backbone","handlebars", "views/CinemaView", "models/CineDati", "text!templates/listacinema.html"],
function($,_,Backbone,Handlebars,CinemaView, CineDati, template){
var ListaCinemaView = Backbone.View.extend({
template: Handlebars.compile(template),
events: {
"touchend" : "Details"
},
initialize : function(){
var self = this;
$.ajax({
url: 'http://www.cineworld.com/api/quickbook/cinemas',
type: 'GET',
data: {key: 'BwKR7b2D'},
dataType: 'jsonp', // Setting this data type will add the callback parameter for you
success: function (response, status) {
// Check for errors from the server
if (response.errors) {
$.each(response.errors, function() {
alert('An error occurred. Please Try Again');
});
} else {
$.each(response.cinemas, function() {
var cinema = new CineDati();
cinema.set({ id : this.id, name : this.name , cinema_url : this.cinema_url, address: this.address, postcode : this.postcode , telephone : this.telephone });
self.model.add([cinema]);
});
self.render();
}}
});
},
events : {
"#touchend" : Dettagli
},
render : function(){
$(this.el).empty();
$(this.el).html(template).append(
_.each(this.model.models, function (cinema) {
$("#lista").append(new CinemaView({
model: cinema
}).render().el); }, this));
return this;
},
Dettagli : function(){
Backbone.history.navigate(this.model , {trigger: "true"});
}
});
return ListaCinemaView;
});
Vielen Dank Will, du warst sehr hilfreich! Ich habe marionette.js schon ausgecheckt und ich denke, dass ich das für meine zukünftige Anwendung verwenden werde! :) –
Froh, dass ich geholfen habe, Augusto. Viel Glück mit Ihrem Projekt. –
Diese Lösung wird nicht berücksichtigt, wenn jemand die Seite aktualisiert, sobald sie sich unter http: // website/model_id befindet. Sie verlieren den Bezug zum Modell. –