tutorial started start quick guide getting emberjs ember docs data cli ember.js ember-cli

started - Ember.js: HtmlBars y el comando Handlebars.compile



ember startup (3)

Está intentando compilar la plantilla HTMLBars en el cliente, sin embargo, al agregar ember-template-compiler en package.json solo se habilita la precompilación de plantillas HTMLBars en el servidor.

Para habilitar la compilación del lado del cliente, debe agregar ember-template-compiler al bower.json , por ejemplo (use la versión apropiada)

"ember-template-compiler": "http://builds.emberjs.com/tags/v1.10.0-beta.3/ember-template-compiler.js"

y luego incluirlo en Brocfile.js ,

app.import(''bower_components/ember-template-compiler/index.js'');

Recibo el siguiente error al ejecutar mi aplicación:

Uncaught Error: Cannot call `compile` without the template compiler loaded. Please load `ember-template-compiler.js` prior to calling `compile`.

Está relacionado con esta pieza de código:

var CarouselView = Ember.View.extend({ template: Ember.Handlebars.compile(''{{view view.itemsView}}''), elementId: ''carousel'', contentBinding: ''content'', ...

Ya hay un problema relacionado con este problema en ember.js github: https://github.com/emberjs/ember.js/issues/10265

Sin embargo, agregué ember-template-compiler a mi package.json y obtuve el mismo error nuevamente.

Lo hice: npm install --save-dev ember-template-compiler

Aquí están mis package.json devDependencies:

"ember-cli": "0.1.10", "ember-cli-app-version": "0.3.0", "ember-cli-content-security-policy": "0.3.0", "ember-cli-dependency-checker": "0.0.7", "ember-cli-htmlbars": "^0.6.0", "ember-cli-ic-ajax": "0.1.1", "ember-cli-inject-live-reload": "^1.3.0", "ember-cli-qunit": "0.3.0", "ember-cli-simple-auth": "^0.7.2", "ember-cli-simple-auth-cookie-store": "^0.7.2", "ember-cli-simple-auth-oauth2": "^0.7.2", "ember-cli-uglify": "1.0.1", "ember-data": "1.0.0-beta.12", "ember-export-application-global": "^1.0.0", "ember-template-compiler": "^1.8.0", "express": "^4.8.5", "glob": "^4.0.5"

Referencia: la página github ember-template-compiler

¿Alguien tiene experiencia con HtmlBars y el comando de compilación?


Dado que el compilador de plantillas Ember.js 1.10 es parte de Ember, entonces todo lo que tiene que hacer para compilar las plantillas en el lado del cliente es agregar la siguiente línea en su Brocfile:

app.import(''bower_components/ember/ember-template-compiler.js'');


Para mis puntos de vista, acabo de crear archivos de plantilla para ellos. Para utilizar tu caso como ejemplo, crearía app / templates / views / carrusel.hbs:

{{view view.itemsView}}

Luego, CarouselView se convierte en:

var CarouselView = Ember.View.extend({ templateName: ''views/carousel'', elementId: ''carousel'', contentBinding: ''content'', ...

De esta forma, no tiene que darle al cliente el compilador de la plantilla. Debe dar como resultado un mejor rendimiento y una menor carga útil para que el cliente descargue.