CrowdStrike/ember-handlebars-brunch

Name: ember-handlebars-brunch

Owner: Crowdstrike

Description: This Brunch plugin adds support for pre-compiling Ember Handlebars templates prior to runtime, utilizing the latest and greatest EmberJS build (v1.0.0).

Created: 2014-01-01 00:00:31.0

Updated: 2014-04-28 18:29:24.0

Pushed: 2014-09-07 01:52:16.0

Homepage:

Size: 187

Language: CoffeeScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Build Status

Ember Handlebars for Brunch

This Brunch plugin adds support for pre-compiling Ember Handlebars templates prior to runtime, utilizing the latest and greatest EmberJS build (1.2.0).

Installation and Usage

Add "ember-handlebars-brunch": "1.2.0" to package.json within your Brunch application codebase.

Within the templates compiler config object of the config.coffee file, set precompile: true to enable pre-compiling.

Note: Be sure to remove the handlebars-brunch plugin if it is installed in your current project.

lates:
precompile: true  # default is false
root: 'templates/'  # default is null
defaultExtension: 'hbs'
joinTo: 'javascripts/app.js' : /^app/

A few reminders about the configuration object mentioned above:

  1. Make sure the extension of each template file matches the defaultExtension property
  2. The value you provide for root should represent a directory located under your app directory. If you do not provide a value for this property, ember-handlebars-brunch will, by default, set the template name to the path of your file, starting from app. For instance, without defining the root property, a template located at app/templates/index.hbs will be registered with Ember as Ember.TEMPLATES['app/templates/index'].

If using the exact example configuration above, your views and templates directories should look similar to this:

app
? templates
??? index
? ??? login.hbs
??? application.hbs
??? index.hbs
? views
??? index
? ??? login.js
??? application.js
??? index.js

Based on the example above, you can define your views like so:

pp/views/application.js
ApplicationView = Ember.View.extend({
templateName: 'application'


pp/views/index.js
IndexView = Ember.View.extend({
templateName: 'index'


pp/views/index/login.js
IndexLoginView = Ember.View.extend({
templateName: 'index/login'

The precompiled templates are injected into the Ember.TEMPLATES namespace. You can access them within your JS code like so:

anotherTemplate = Ember.TEMPLATES['index/login'];

If you wish to require the template instead of declaring them directly within a view class or within your code as mentioned above, you have to use the full path to the file, starting from the templates directory;

ire('templates/index/login');

Bitdeli Badge


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.