2012-01-18 18 views
16

tengo este JSON retornocómo acceder a los objetos anidados con motor de plantillas bigote js

{ 
    "timeline": [{ 
     "id": "2", 
     "self": { 
      "uid": "2", 
      "username": "ptamzz" 
     }, 
     "file": { 
      "fid": "43", 
      "file_name": "First Name" 
     }, 
     "connection": { 
      "fid": "4", 
      "username": "tom" 
     }, 
     "action": "viewed your document", 
     "time": "2012-01-16 12:23:03", 
     "tags": ["Engineering", "Computer Science", "Java", "Java Library"] 
    }, { 
     "id": "1", 
     "self": { 
      "uid": "2", 
      "username": "ptamzz" 
     }, 
     "file": { 
      "fid": "41", 
      "file_name": "Write Up" 
     }, 
     "connection": { 
      "fid": "4", 
      "username": "tom" 
     }, 
     "action": "favorited your document", 
     "time": "2012-01-16 12:22:04", 
     "tags": ["Design"] 
    }] 
} 

De acuerdo con el tutorial en http://coenraets.org/blog/2011/12/tutorial-html-templates-with-mustache-js/ (Muestra 6: Sección objeto anidado), puede acceder a dot notation acceder a los objetos anidados .

Desde el JSON anterior, quiero recuperar los datos como self.username, file.file_name, etc, etc

Ahora, tengo mi plantilla como

{{#timeline}} 
    <li> 
     {{self.username}} 
    </li> 
{{/timeline}} 

Pero self.username no funciona.

¿Cómo recupero estos valores anidados?

Respuesta

17

No creo que sea la manera correcta de hacerlo, pero como no pude encontrar ninguna respuesta aquí, me di cuenta de algo por mi cuenta. Al menos esto funciona.

{{#timeline}} 
    <li> 
     {{#self}}{{username}}{{/self}} 
    </li> 
{{/timeline}} 
+1

notación de puntos FUNCIONA. Debe haber un error en su caso especial. Tal vez porque "self.username" está en una matriz y puede aparecer varias veces. – OneWorld

+0

no puedo obtener la "notación de punto" que funciona para un objeto simple. . = (Por ejemplo, tarjeta { id: 10, nombre: "Maxwell" } –

+0

no depende esto en el procesador real –

4

La notación de puntos no funciona en la versión 0.4xy posterior. Funcionó en "0.7.2".

Cuestiones relacionadas