diff --git a/README.md b/README.md index 64096b5..0ded2cd 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,21 @@ Tags are always surrounded by mustaches like this `{{foobar}}`. template = "{{say_hello}}, {{name}}" +#### Accessing values in nested objects (Dot Notation) + +To access data logically grouped into nested objects, specify a '.' delimited +path to the value. + + var contact = { + name: {first: "Bill", last: "Bobitybob" }, + age: 37 + } + + template = "Hello, {{name.first}} {{name.last}}. You are {{age}} years old." + +*NOTICE*: The dot notation feature was recently implemented for the 0.4 + release, which is not out as of Nov 9 2011. You can find the feature in the + current master branch of mustachejs. ### Conditional Sections @@ -93,7 +108,7 @@ enumeration section. If a section key returns a function, it will be called and passed both the unrendered block of text and a renderer convenience function. -Given this JS: +Given this object: "name": "Tater", "bolder": function() { @@ -115,39 +130,36 @@ to implement caching, filters (like syntax highlighting), etc. You can use `this.name` to access the attribute `name` from your view. -### Dereferencing Section +### Dereferencing Sections + +If your data has components that are logically grouped into nested objects, +you may wish to dereference an object to access its values. -If you have a nested object structure in your view, it can sometimes be easier -to use sections like this: +Given this object: - var objects = { - a_object: { - title: 'this is an object', - description: 'one of its attributes is a list', - a_list: [{label: 'listitem1'}, {label: 'listitem2'}] + { + "name": "Bill", + "address": { + "street": "801 Streetly street", + "city": "Boston", + "state": "MA", + "zip" "02101" } - }; + } -This is our template: +And this template: - {{#a_object}} -
{{description}}
-{{street}}
+{{city}}, {{state}} {{zip}}
+ {{/address}} -Here is the result: +We'll get this output: -one of its attributes is a list
-801 Streetly street
+Boston, MA 02101
### Inverted Sections @@ -255,16 +267,6 @@ own iteration marker: {{bob}} {{/foo}} -## F.A.Q. - -### Why doesn’t Mustache allow dot notation like `{{variable.member}}`? - -The reason is given in the [mustache.rb -bugtracker](http://github.com/defunkt/mustache/issues/issue/6). - -Mustache implementations strive to be template-compatible. - - ## More Examples and Documentation See `examples/` for more goodies and read the [original mustache docs][m]