web-dev-qa-db-fra.com

{{content-for 'head'}} Ember-cli

J'utilise Yeoman ember générateur depuis 1 mois et maintenant, je voudrais essayer ember-cli.

Je lance le générateur et lance l'application, tout fonctionne bien.

ember new my-new-app
ember server

mais j'aimerais savoir comment

{{content-for 'head'}}

dans app/index.html fonctionne?

Lorsque vous regardez d'autres exemples de http://www.ember-cli.com/#tutorials , aucun d'entre eux n'utilise cet assistant particulier? Est-ce parce qu'ils utilisent une ancienne version d'ember-cli? Pourquoi n'utilisaient-ils pas cet assistant de contenu?

Je suis sûr que ember.js n'a pas cet assistant de contenu par défaut, donc je suppose qu'ember-cli l'a écrit quelque part? Où est-il et à quoi sert-il?

De plus, lorsque j'inspecte l'élément de ma page nouvelle application, la balise div de 'Welcome to Ember.js' est apparue sur la balise body au lieu de la balise head? Comment est-ce possible? {{l'esprit soufflé}}

(dans app/index.html, {{content-for 'head'}} est placé à l'intérieur de la balise head)

32
Sukhito

Il a été récemment ajouté à ember-cli sur la base de cette discussion .

Voici le code pertinent de 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');
};
25
Peter Brown

De guide Ember CLI :

app/index.html

Le app/index.html Le fichier jette les bases de votre application. C'est là que la structure DOM de base est disposée, l'attribut title est défini et les inclusions de feuille de style/javascript sont effectuées. De plus, app/index.html comprend plusieurs crochets - {{content-for 'head'}} et {{content-for 'body'}} - qui peut être utilisé par les modules complémentaires pour injecter du contenu dans head ou body de votre application. Ces crochets doivent être laissés en place pour que votre application fonctionne correctement, mais ils peuvent être ignorés en toute sécurité à moins que vous ne travailliez directement avec un addon particulier.

Je cherchais en fait où Welcome to Ember.jsest originaire (qui est évidemment dans app\templates\application.hbs), mais d'abord tombé sur content-for aides.

21
mp31415