Mam problem z ustaleniem, czy można przekazać ciąg do widoku za pomocą backgone.history.loadUrl?
//My current method of reloading the view
Backbone.history.loadUrl(Backbone.history.fragment);
Jeśli to możliwe, chciałbym użyć tej metody, aby renderowała widok z routera sieci szkieletowej, a następnie renderowała mój widok od wewnątrz i przekazała go jako opcje dla tego widoku.
//Destroy old view
//Render view again
var view = new myView("success msg");
Odpowiedzi:
1 dla odpowiedzi № 1Oto prosty sposób na rozszerzenie Backbone.history
z funkcją przeładowania:
_.extend(Backbone.history, {
reload: function(){
return this.loadUrl(this.getFragment());
}
});
Nie rób tego, jeśli piszesz bibliotekę / wtyczkę.
Potem dzwonię Backbone.history.reload();
gdziekolwiek zadzwoni ponownie na trasę.
Czy to dobry sposób na ponowne renderowanie widoku? Nie.
Jeśli chcesz ponownie renderować widok w sobie, zrób to, nie ładuj ponownie całej trasy.
var View = Backbone.View.extend({
// events, etc. ...
render: function() {
// rendering
if (this.success) {
// show success message
}
return this;
},
onMyEvent: function() {
// here, a re-render with a success message is necessary
this.success = true;
this.render();
}
})