2017-07-20 3 views
1

Meine App ist nicht alle Parameter aus der enviroment.js Datei zu laden, nur diejenigen, die standardmäßig sind.Ember.js - App laden nicht alle params aus enviroment.js

Ich installiere dieses Paket ember-g-recaptcha und dann müssen Sie einen Parameter in der Konfigurationsdatei setzen.

Das Problem ist, dass ich eine Demo-App mit Ember-CLI erstellen und ich arbeite, aber in meiner echten App ist nicht, vielleicht hat jemand eine Idee für warum lädt die Parameter nicht.

Ich versuche die Version der Module in der package.json ändern, aber kein Glück, aber ich denke, ist immer noch da drüben die Lösung.

In meiner App das Ziel der Konfigurationsdatei diese werfen, wenn Sie dieses Konsolenprotokoll tun:

console.log (Ember.getOwner (this) .resolveRegistration ('config: environment'));

Object { 
    modulePrefix: "listings-search", 
    environment: "development", 
    rootURL: "/", 
    EmberENV: Object, 
    APP: Object, ember-cli-mirage: Object, exportApplicationGlobal: true 
} 

In der Demo-Anwendung ist dies das Ergebnis:

Object { 
    modulePrefix: "lala", 
    environment: "development", 
    rootURL: "/", 
    locationType: "auto", 
    gReCaptcha: Object, 
    EmberENV: Object, 
    APP: Object, ember-cli-mirage: Object, exportApplicationGlobal: true 
    } 

Das ist mein enviroment.js

/* jshint node: true */ 

module.exports = function(environment) { 
    var ENV = { 
    modulePrefix: 'listings-search', 
    environment: environment, 
    rootURL: '/', 
    locationType: 'auto', 
    gReCaptcha: { 
     siteKey: 'asdasdads' 
    }, 
    EmberENV: { 
     FEATURES: { 
     // Here you can enable experimental features on an ember canary build 
     // e.g. 'with-controller': true 
     }, 
     EXTEND_PROTOTYPES: { 
     // Prevent Ember Data from overriding Date.parse. 
     Date: false 
     } 
    }, 

    APP: { 
     // Here you can pass flags/options to your application instance 
     // when it is created 
    } 
    }; 

    if (environment === 'development') { 
    // ENV.APP.LOG_RESOLVER = true; 
    // ENV.APP.LOG_ACTIVE_GENERATION = true; 
    // ENV.APP.LOG_TRANSITIONS = true; 
    // ENV.APP.LOG_TRANSITIONS_INTERNAL = true; 
    // ENV.APP.LOG_VIEW_LOOKUPS = true; 
    // ENV['ember-cli-mirage'] = { 
    // enabled: false 
    // } 
    } 

    if (environment === 'test') { 
    // Testem prefers this... 
    ENV.locationType = 'none'; 

    // keep test console output quieter 
    ENV.APP.LOG_ACTIVE_GENERATION = false; 
    ENV.APP.LOG_VIEW_LOOKUPS = false; 

    ENV.APP.rootElement = '#ember-testing'; 
    } 

    if (environment === 'production') { 

    } 

    return ENV; 
}; 

Auch Datei, wenn ich in dieser meiner environment.js zuzugreifen versuchen Art und Weise, dass der offizielle Führer sagte in diesen link, werfen diese Fehler in der Konsole:

Could not find module `/appname/config/environment` imported from `appname/components/name-component` 

Version:

  • ember: "~ 2.9.0"
  • glut-cli: 2.14.0
  • Knoten: 8.2.0
  • os: Darwin x64
+0

Welche Version von ember/ember-cli verwenden Sie? – Bracke

+0

glut-cli: 2.14.0 Knoten: 8.2.0 os: Darwin x64 – Merlyn007

+0

Haben Sie 'appname' mit dem Namen der App ersetzt? – Bracke

Antwort

0

Das Problem ist, dass Ember.js die Datei Enviroment.js in ein Meta-Tag im HTML eingibt, von dem ich keine Kenntnis hatte, weil die Dokumentation nichts über th sagt ist.

Wir verwenden eine andere Strategie für den Einsatz von Ember ohne die Routen, so dass der Meta-Tag wurde in dem Code harcoded. Ich habe es nicht gesehen (auch ich habe nicht darauf geachtet, weil ich nicht über die Config-Parameter im Meta-Tag wusste)

Seit Ember.js 2.3 können wir in unserer Brokkoli-Datei einrichten (glut-cli-build.js) der Parameter storeConfigInMeta: false und die Config-Datei werden in unserer JavaScript-Datei eingebettet werden.