2017-09-07 4 views
0

J'ai une application Ember.js avec un moteur d'ember ajouté en tant qu'addon externe, et l'application parente et le moteur partagent le magasin. Cela crée un problème car, lors de l'extraction d'un modèle dans une route à partir du moteur, le fait que le magasin soit partagé provoque l'arrêt de l'application parent, indiquant qu'elle ne connaît pas le modèle.Importer un modèle à partir de l'intérieur du moteur d'ember

La copie du modèle depuis l'intérieur du moteur vers les modèles parents le corrige, mais cela va à l'encontre du principe d'isolation. Je me demande s'il existe un moyen d'importer le modèle d'un moteur dans l'application parente, car même si cela rend également le parent conscient du modèle du moteur, au moins, il ne répliquera pas le code.

Comme il est un addon, je suppose cela fonctionnerait:

`import DockerComposeModel from 'ember-stack-builder-engine/models/docker-compose'` 

Mais renvoie une erreur

Error: Could not find module `ember-stack-builder-engine/models/docker-compose` imported from `bde-integrator-user-interface/application/controller` 

Répondre

0

Pouvez-vous s'il vous plaît nous montrer un code Comment vous configurez le moteur.

normalement le moteur et l'application partagent le modèle et vous n'avez pas besoin d'utiliser l'importation.

Vous pouvez directement utiliser this.findRecord(ModelName) mais si cela ne fonctionne pas, veuillez partager votre code.

+0

J'ai le magasin partagé entre le moteur et l'application. Dans l'application, je n'essaie jamais d'aller chercher un modèle défini dans le moteur mais il échoue. Rien de spécial, il suffit d'ajouter le magasin en tant que service partagé. – Urco

+0

Ce que je sais recherche jusqu'à présent est une façon que vous pouvez injecter le service de l'application, les contrôleurs, les routes dans le moteur. recherche de moteur à l'application n'est pas possible selon ce que je sais. https://github.com/emberjs/rfcs/pull/10/files#r38705032 voir ceci. – Sandeep