/ / Ako potlačiť Ember.View tak, aby sa hľadali všetky šablóny v rámci menného priestoru - ember.js

Ako overiť Ember.View tak, že všetky šablóny sú vyhľadávané v rámci menného priestoru - ember.js

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ď č. 1

Aby 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.