DoneJS StealJS jQuery ++ FuncUnit DocumentJS
3.0.0
2.3.27

 

  • Github
  • Twitter
  • Chat
  • Forum
  • Guides
  • Core
    • can-component
    • can-compute
    • can-connect
    • can-define
    • can-define/list/list
    • can-define/map/map
    • can-route
    • can-route-pushstate
    • can-set
    • can-stache
      • Pages
        • Magic Tag Types
        • Scope and Context
        • Expressions
        • Template Acquisition
        • Helpers
        • Live Binding
      • Methods
        • from
        • registerConverter
        • registerHelper
        • registerPartial
        • registerSimpleHelper
        • safeString
      • Tags
        • {{expression}}
        • {{{expression}}}
        • {{#expression}}
        • {{/expression}}
        • {{^expression}}
        • {{>key}}
        • {{!expression}}
        • {{else}}
      • Expressions
        • Bracket Expression
        • Call Expression
        • Hash Expression
        • Helper Expression
        • KeyLookup Expression
        • Literal Expression
      • Key Operators
        • @at
        • ~compute
        • ./current
        • ../parent
        • %special
        • this
        • *variable
        • key
      • Helpers
        • {{#if expression}}
        • {{#unless expression}}
        • {{#each expression}}
        • {{#with expression}}
        • {{log}}
        • {{#is expressions}}
        • {{#switch expression}}
        • {{#case expression}}
        • {{#default}}
        • {{joinBase expressions}}
      • Types
        • getterSetter
        • helper
        • helperOptions
        • renderer
        • sectionRenderer
        • simpleHelper
    • can-stache/helpers/route
    • can-stache-bindings
  • Ecosystem
  • Infrastructure
  • Legacy
  • Bitovi
    • Bitovi.com
    • Blog
    • Consulting
    • Training
    • Open Source
  • Chat
  • Forum
  • Star
  • Follow @canjs
  • CanJS
  • /
  • Core
  • /
  • can-stache
  • /
  • %special
  • / On this page
    • %special

      typedef

      Event bindings and some helpers like {{#each expression}} provide special values that start with % to prevent potential collisions with other values.

      • source

      %index

      When looping over an array, can-define/list/list, or can-list, you an use %index to write out the index of each property:

      {{#each tasks}}
        <li>{{%index}} {{name}}</li>
      {{/each}}
      

      Indexes start at 0. If you want to start at 1, you can create a helper like:

      stache.registerHelper('%indexNum', function(options){
        return options.scope.get("%index")+1;
      })
      

      And use it like:

      {{#each task}}
        <li>{{%indexNum}} {{name}}</li>
      {{/each}}
      

      %key

      Like %index, but provides the key value when looping through an object:

      {{#each style}}
         {{%key}}: {{this}}
      {{/each}}
      

      %element

      In an event binding, %element references the DOM element the event happened on:

      <input ($click)="doSomething(%element.value)"/>
      

      %event

      In an event binding, %event references the dispatched event object:

      <input ($click)="doSomething(%event)/>"
      

      %viewModel

      In an event binding, %viewModel references the view model of the current element:

      <my-component (closed)="doSomething(%viewModel)"/>
      

      %arguments

      In an event binding, %arguments references the arguments passed when the event was dispatched/triggered.

      <input ($click)="doSomething(%arguments)"/>
      

      CanJS is part of DoneJS. Created and maintained by the core DoneJS team and Bitovi. Currently 3.0.0.