Ich bin dabei, über 400 Modelle für die Verwendung mit js-Daten in meiner angular2 (angular-cli) -App zu haben.Wie importiere ich mehr als 400 Module und iteriere sie in meinem angular-cli-Projekt?
Struktur meines Projektes ist dies:
- src/
- app/
- services/
- pipes/
- ui/
- data/
- store.ts
- models/
- model1.ts
- model2.ts
- ...
- model400.ts
In dem Laden, ich importieren müssen, und fügen Sie die Zuordnung in den Laden. Die Modelldateien werden Mapper eigentlich nur configs für js-Daten 3.
zur Zeit, sie in etwa so aussehen:
// src/app/data/models/model1.ts
export default {
schema: {
name: 'model1',
properties: {
id: { type: 'integer' }
}
},
relations: {}
}
und meinem Speicher sieht derzeit wie folgt aus:
// src/app/data/store.ts
import {
DataStore,
Mapper,
Record,
Schema,
utils
} from 'js-data'
import {HttpAdapter} from 'js-data-http'
declare var require: any
export const adapter = new HttpAdapter({
// Our API sits behind the /api path
basePath: '/api'
});
export const store = new DataStore({});
store.registerAdapter('http', adapter, { default: true });
import { model1Config} from './models/model1';
import { model2Config } from './models/model2';
import { model3Config } from './models/model3';
// at this point, I give up, cause this is more tedious
// than cutting grass with a finger nail clipper
store.defineMapper('model1', model1Config);
store.defineMapper('model2', model2Config);
store.defineMapper('model3', model3Config);
Wenn es gibt sowieso eine iteration über jede datei im models ordner, das wäre toll.
angular-cli soll schließlich alle ts/js zu einer einzigen js-Datei kompilieren, so dass ich mir keine Gedanken über irgendetwas machen muss, das auf der Client-Seite nicht laufen könnte. (also, ich habe Brokkoli, und was auch immer andere Build-Tools sind damit gebündelt, ich weiß nur nicht, ob einige von ihnen für diese Situation nützlich wäre)
Ich importiere nur die Dateien nur einmal, um den Speicher zu konfigurieren. Also, ich brauche diese Stufe der Importfähigkeit nicht. Das ist aber gut zu wissen! – NullVoxPopuli
Mh, mir fällt nichts ein, was dir helfen könnte, die 'store.defineMapper'-Aufrufe loszuwerden. Außer die Datei oder dieses Snippet irgendwie zu erzeugen. – lexith
Ja, jemand im js-data slack-Kanal schlug vor, ein t4-Skript im Visual Studio zu schreiben (da das Backend .net ist) - es würde zumindest helfen, zu beginnen, aber mehr als 800 Zeilen des Importierens der configs und setting mapper auf dem Laden ist einfach inakzeptabel, imo. – NullVoxPopuli