2013-07-21 7 views
0

Je commence un petit projet web en utilisant le brai et un json api.Handlebars ne rend pas l'url comme prévu

Il contient actuellement une seule page avec un contenu suivant:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <title>Express</title> 
    <link rel="stylesheet" href="/stylesheets/style.css"> 
    <link rel="stylesheet" href="/stylesheets/bootstrap.min.css"> 
    <link rel="stylesheet" href="/stylesheets/bootstrap-responsive.min.css"> 
    <link rel="stylesheet" href="/stylesheets/ui-darkness/jquery-ui-1.10.3.custom.min.css"> 
    </head> 
    <body> 
    <div class="container"> 
     <script type="text/x-handlebars" data-template-name="index"> 
     <h1>Bookmarks</h1>{{#each controller}} 
     <div class="span-4"><a href="{{link}}">{{title}}</a> 
      <p>{{description}}</p> 
     </div>{{/each}} 
     </script> 
     <script type="text/javascript" src="/javascripts/require.js" data-main="javascripts/main"></script> 
    </div> 
    </body> 
</html> 

Mon code Ember est le suivant:

App = Ember.Application.create(); 
App.Router.map(function() { 
    this.resource('index', { path: '/' }); 
}); 

App.IndexRoute = Ember.Route.extend({ 
    model: function() { 
     return App.Bookmark.find(); 
    } 
}); 

App.Bookmark = DS.Model.extend({ 
    title: DS.attr('string'), 
    link: DS.attr('string'), 
    description: DS.attr('string'), 
}); 
App.Store = DS.Store.extend({ 
    revision: 13, 
}); 

et/marque-pages renvoient un ce résultat JSON:

{ 
    "bookmarks": [ 
     { 
      "_id": "51ebd06a5810509f703e2504", 
      "title": "Stackoverflow", 
      "link": "http://stackoverflow.com/", 
      "description": "Q&A" 
     } 
    ] 
} 

La plupart de mon modèle de handlbars fonctionne comme prévu, et seulement une chose ne fonctionne pas, le {{link}} partie crée du contenu tel que <script id='metamorph-2-start' type='text/x-placeholder'></script>http://stackoverflow.com/<script id='metamorph-2-end' type='text/x-placeholder'></script>

Vous pouvez voir l'application en cours d'exécution là: http://sleepy-bastion-5858.herokuapp.com/

Est-ce que quelqu'un a une idée?

Répondre

4

Pour lier des attributs HTML (tels que href, src, titre, etc.), utilisez le bind-attr helper. Donc, votre modèle devrait être:

<script type="text/x-handlebars" data-template-name="index"> 
    <h1>Bookmarks</h1> 

    {{#each controller}} 
     <div class="span-4"> 
     <a {{bind-attr href="link"}}>{{title}}</a> 
     <p>{{description}}</p> 
     </div> 
    {{/each}} 
    </script> 
Questions connexes