Používam kĺbové lišty, aby som sa postaral o riadidlákompilácia a aplikácia Rails bude mať viac aplikácií Ember (v závislosti od stránky, na ktorej sa používateľ nachádza). Pre lepšiu manipuláciu so správou súborov by som rád usporiadal šablóny do iného priečinka v aplikácii. Nechcem však pre každú šablónu vytvárať samostatné zobrazenie, len aby som špecifikoval templateName. Existuje dobrý spôsob, ako potlačiť Ember.View pre každú aplikáciu tak, aby vždy hľadala šablóny v rámci konkrétneho menného priestoru?
odpovede:
2 pre odpoveď č. 1Aby ste to dosiahli, môžete prepísať prekladač šablón. Základnou myšlienkou je zabezpečiť, aby zostavovací systém, ako sú ember-rails, zostavil šablóny do podoby,
Ember.TEMPLATES["namespace/foo/bar"] = ...
Potom môžete prepísať prekladač šablón a predponu tohto priestoru mien pred názvom šablóny.
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);
}
})
});
Tu je a jsbin príkladom. Šablóny sú vložené do príkladu, ale budú pochádzať z initech
adresár vo vašom prípade.