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.