Samuel Segal
Samuel Segal

Reputation: 423

Ember: {{link-to}} helper error when in {{each}} helper

The link-tohelper return the following error:

Uncaught Error: each doesn't match link-to - 5:10

The template:

<script type="text/x-handlebars" id="actions">
  <div class='container-fluid'>
    <div class="row">    <!--  -->
      <div class="col-md-6 col-lg-4">    <!--  -->
        {{#each action in model}}
          {{link-to 'action' action}}{{action.id}}{{/link-to}}
        {{/each}}
        {{outlet}}
      </div>       
    </div>
  </div> 
</script>

The router:

App.Router.map(function() {
  this.resource('application', function() {
    this.resource('actions', function() {
      this.resource('action', { path: '/:action_id'});
    });  
});

The route:

App.ActionsRoute = Ember.Route.extend({
  model: function() {
    return this.store.findAll('action');
    //return this.modelFor('user').get('actions');
  },

  setupController: function (controller, model) {
    controller.set('model', model);
  },

});  

I cannot find what is wrong.

Upvotes: 2

Views: 1133

Answers (1)

Karl-Johan Sj&#246;gren
Karl-Johan Sj&#246;gren

Reputation: 17612

It's a quite small error. When using a block helper such as each or link-to you need to invoke them with a # in front, such as you have done with {{#each}}. Since you lack that on your starting link-to, the parser sees the {{/link-to}} and notices that it currently is working with a each-block and those doesn't match. Just add a # in front of your starting 'link-to' and it should work fine.

{{#each action in model}}
    {{#link-to 'action' action}}{{action.id}}{{/link-to}}
{{/each}}

Upvotes: 6

Related Questions