2014-09-17 14 views
5

Ho un progetto ember-cli. Ho usato bower per installare fastclick e l'ho aggiunto al mio brocfile.Come installare fastclick con ember-cli?

Ora sto provando a inizializzarlo. Nel mio file app.js ho aggiunto:

import FastClick from 'bower_components/fastclick/lib/fastclick'; 

Ma questo mi dà un errore nella console: "TypeError Uncaught: Impossibile leggere la proprietà 'default' di non definito". L'ispettore mostra il seguente codice generato:

["ember","ember/resolver","ember/load-initializers","bower_components/fastclick/lib/fastclick","exports"], 
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) { 
"use strict"; 
var Ember = __dependency1__["default"]; 
var Resolver = __dependency2__["default"]; 
var loadInitializers = __dependency3__["default"]; 
var FastClick = __dependency4__["default"];  # chrome highlights this line 

assumo il problema è che Fastclick non è compatibile con il caricatore ES6 che usi brace-cli. Non ho requirejs, quindi come posso installare fastclick nel mio progetto? I documenti sono a https://github.com/ftlabs/fastclick.

Ho anche provato ad aggiungere questo per index.html, ma non ha alcun effetto quando costruire un app iOS:

$(function() { 
    FastClick.attach(document.body); 
    }); 

risposta

9

con Ember-cli v0.0.42

Installare Fastclick con bower

bower install fastclick --save 

Nei tuoi Brocfile.js, aggiungere il seguente sopra module.exports = app.toTree();

app.import('bower_components/fastclick/lib/fastclick.js'); 

Poi, nel tuo app.js è possibile aggiungere

var App = Ember.Application.extend({ 
    ... 
    ready: function(){ 
    FastClick.attach(document.body); 
    } 
}); 

Avrete anche bisogno di aggiungere "FastClick":true al file .jshintrc di predef, per evitare che si lamenta. Maggiori informazioni nei documenti su Managing Dependencies.

0

OK la versione jquery non ha funzionato, ma mettendo il segue nel mio file index.html ha fatto:

window.addEventListener('load', function() { 
    FastClick.attach(document.body); 
}, false);