2013-04-08 14 views
14

Ho una serie Embermain.js file, che inizia così:jshint si lamenta: 'Ember' non è definito

this.App = Ember.Application.create({ 
    LOG_TRANSITIONS: true, 
    VERSION: '1.0.0', 
    ready: function() { 
     console.log('App version: ' + App.VERSION + ' is ready.'); 
    } 
}); 

L'esecuzione di questo attraverso jshint lamenta Ember non essere definito, che è vero per questo particolare file nel server, durante la fase di distribuzione. Per questo motivo vengono visualizzati molti messaggi di errore.

Ember è reso disponibile nel browser dal tag script in index.html:

<script src="scripts/vendor/ember-1.0.0-rc.2.js"></script> 

Come posso dire a riguardo jshintEmber?

risposta

16

che segue dovrebbe farlo:

/*global Ember */ 
this.App = Ember.Application.create({ 
    LOG_TRANSITIONS: true, 
    VERSION: '1.0.0', 
    ready: function() { 
     console.log('App version: ' + App.VERSION + ' is ready.'); 
    } 
}); 

Trovato in JS Hint Docs

+0

Significa aggiungere '/ * global Ember * /' a 'main.js', prima di istanziare' this.App'? Questo non funziona per me. – dangonfast

+0

Quindi ci deve essere qualcosa di sbagliato nella configurazione di JSHint. Funziona per me e come vedi, l'ho preso dai documenti. – mavilein

+0

Ho trovato la risposta nella mailing list di jshint: non puoi mettere uno spazio prima di 'global'. Deve essere così: '/ * Ember globale * /'. Puoi correggere la tua risposta in modo che io possa accettarla? – dangonfast

16

Se si sta utilizzando la nuova ES6, per esempio da ember-cli, è necessario importare Ember:

import Ember from 'ember'; 

Stavo seguendo Evil Trout's Ember Reddit tutorial e ho visto il seguente errore in th e prove:

my-new-app/routes/subreddit.js should pass jshint. 
my-new-app/routes/subreddit.js: line 3, col 16, 'Ember' is not defined. 

aggiungendo la riga precedente all'inizio my-new-app/routes/subreddit.js superato le prove.