/ / Come sovrascrivere Ember.View in modo tale che tutti i modelli vengano cercati in uno spazio dei nomi - ember.js

Come sovrascrivere Ember.View in modo tale che tutti i modelli vengano cercati in uno spazio dei nomi - ember.js

Sto usando le rotaie della brace per prendermi cura del manubriola compilation e l'app rails avranno più applicazioni Ember (a seconda della pagina su cui si trova l'utente). Per gestire meglio la gestione dei file, mi piacerebbe organizzare i modelli in una cartella diversa per app. Tuttavia, non voglio creare una vista separata per ciascun modello solo per specificare templateName. Esiste un buon modo per eseguire l'override di Ember.View per ogni applicazione in modo tale che cercherà sempre modelli in un determinato spazio dei nomi?

risposte:

2 per risposta № 1

È possibile ignorare il risolutore di modelli per ottenere questo risultato. L'idea di base è assicurarsi che il sistema di compilazione come ember-rails compili i template nel modulo,

Ember.TEMPLATES["namespace/foo/bar"] = ...

Quindi è possibile sovrascrivere il risolutore di modelli per aggiungere il prefisso a quello spazio dei nomi sul nome del modello.

App = Ember.Application.create({
templateNamespace: "initech",

resolver: Ember.DefaultResolver.extend({
resolveTemplate: function(parsedName) {
parsedName.fullNameWithoutType = App.templateNamespace + "/" + parsedName.fullNameWithoutType;
parsedName.name = App.templateNamespace + "/" + parsedName.name;

return this._super(parsedName);
}
})

});

Ecco un jsbin esempio. I modelli sono incorporati nell'esempio ma verrebbero dal initech directory nel tuo caso.