2014-10-06 15 views
29

Ho usato il generatore di ember Yeoman da 1 mese e ora, vorrei provare a ember-cli.{{content-for 'head'}} Ember-cli

Eseguo il generatore e avvio l'app, tutto funziona correttamente.

ember new my-new-app 
ember server 

ma mi piacerebbe sapere come fa

{{content-for 'head'}} 

in app/index.html opere?

Quando si guardano altri esempi da http://www.ember-cli.com/#tutorials, nessuno di loro utilizza questo particolare helper? È perché stanno usando la versione precedente di ember-cli? Perché non stavano usando questo contenuto, per l'aiuto?

Sono abbastanza sicuro che ember.js non ha questo contenuto, per l'helper di default, quindi immagino che ember-cli l'abbia scritto da qualche parte? Dov'è e a cosa serve?

Inoltre, quando ispeziono l'elemento della pagina my-new-app, il tag div di "Welcome to Ember.js" è apparso sul tag body invece che head tag? Come è possibile? {{Mente soffiato}}

(in app/index.html, {{content-per 'testa'}} è posto all'interno del tag head)

risposta

25

E 'stato recentemente aggiunto alla brace-cli base di this discussion .

Ecco il relativo codice dalla commit:

EmberApp.prototype.contentFor = function(config, match, type) { 
    var content = []; 

    if (type === 'head') { 
    content.push(calculateBaseTag(config)); 

    content.push('<meta name="' + config.modulePrefix + '/config/environment" ' + 
       'content="' + escape(JSON.stringify(config)) + '">'); 
    } 

    content = this.project.addons.reduce(function(content, addon) { 
    if (addon.contentFor) { 
     return content.concat(addon.contentFor(type, config)); 
    } 

    return content; 
    }, content); 

    return content.join('\n'); 
}; 
+2

Per ulteriori dettagli, consultare https://www.npmjs.org/package/ember-cli-inline-content – aceofspades

19

Da Ember CLI guide:

app/index.html

Il file app/index.html pone le basi per l'applicazione. Qui è dove viene strutturata la struttura DOM di base, viene impostato l'attributo e vengono completati i fogli di stile/javascript. Oltre a questo, app/index.html include più hook - {{content-for 'head'}} e {{content-for 'body'}} - che può essere utilizzato dai componenti aggiuntivi a inietti il ​​contenuto nell'applicazione head o body. Questi ganci devono essere lasciati in posizione perché l'applicazione funzioni correttamente, , ma possono essere ignorati in modo sicuro a meno che non si stia lavorando direttamente con un particolare componente aggiuntivo .

realtà stavo cercando dove Welcome to Ember.js proviene da (che è ovviamente in app\templates\application.hbs), ma prima incappato in content-for aiutanti.