2013-07-30 12 views
20

this basic Ember.js tutorial'u takip etmeye çalışıyorum ancak "posts" modeliyle hiç şansım yok. Her şeyin ancak hata alıyorum, gösteri göre kurdunuz: Bu şimdiye kadar bir ember.js uygulaması ile çalıştık ilk defa bu yanaYakalanma Rota için dinamik bölümler olduğundan daha fazla bağlam nesnesi geçirildi:

Uncaught More context objects were passed than there are dynamic segments for the route: post

, dürüst hiçbir ipucu ne var Bunun anlamı. Herhangi bir yardım (kelimenin tam anlamıyla) büyük ölçüde takdir edilecektir.

İşte

App = Ember.Application.create(); 

App.Store = DS.Store.extend({ 
    adapter: 'DS.FixtureAdapter' 
}); 

App.Router.map(function() { 
    this.resource('posts', function() { 
     this.resource('post', { path:'post_id'}) 
    }); 
    this.resource('about'); 
}); 

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

App.Post = DS.Model.extend({ 
    title: DS.attr('string'), 
    author: DS.attr('string'), 
    intro: DS.attr('string'), 
    extended: DS.attr('string'), 
    publishedAt: DS.attr('date') 
}); 

App.Post.FIXTURES = [{ 
     id: 1, 
     title: "Rails in Omakase", 
     author: "d2h", 
     publishedAt: new Date('12-27-2012'), 
     intro: "Blah blah blah blah", 
     extended: "I have no clue what extended means" 
    }, { 
     id: 2, 
     title: "Second post", 
     author: "second author", 
     publishedAt: new Date('1-27-2012'), 
     intro: "second intro", 
     extended: "Second extended" 
    }]; 

benim App.js

Ve burada yayınlar için html 'dir.

<script type="text/x-handlebars" id="posts"> 
    <div class="container-fluid"> 
     <div class="row-fluid"> 
      <div class="span3"> 
       <table class='table'> 
       <thead> 
        <tr><th>Recent Posts</th></tr> 
       </thead> 
       {{#each model}} 
       <tr><td> 
        {{#linkTo 'post' this}}{{title}} <small class='muted'>by {{author}}</small>{{/linkTo}} 
       </td></tr> 
       {{/each}} 
       </table> 
      </div> 
      <div class="span9"> 
       {{outlet}} 
      </div> 
     </div> 
    </div> 
</script> 
<script type="text/x-handlebars" id="post"> 
    <h1>{{title}}</h1> 
    <h2> by {{author}} <small class="muted">{{publishedAt}}</small></h2> 

    <hr> 

    <div class="intro"> 
     {{intro}} 
    </div> 

    <div class="below-the-fold"> 
     {{extended}} 
    </div> 
</script> 

cevap

29

Sanırım bir rota belirtmeniz gerekiyordu.

this.resource('posts', function() { 
    this.route('post', { path:'/post/:post_id'}) 
}); 

sen 'sonrası/12' gibi bir şey geçiyoruz ve siz (şeklinde yazılır ': post_id') belirtilen dinamik kesimini yok gibi hata sesleri ':' Bir belirtir önemli bir noktadır dinamik segment.

kabul cevap çalışır Ember.js documentation

+0

:

this.resource('posts'); 

ve onun altındaki bu ekleyin:

Ancak op örnekte olduğu göz önüne alındığında, daha doğru düzeltme yalnız aşağıdaki bırakmaktır

sen! – NealR

+4

Neden video eğitiminde beklendiği gibi çalıştığını merak ediyorum, daha yeni bir versiyonu olabilir mi? –

+1

Sadece buna eklemek için, kaynak 'Ember 2.x'de kullanımdan kaldırıldı. Daha yeni uygulamalar, yerine 'rota' kullanmalıdır. –

2

Alındığı. teşekkürler öyleydi

this.resource('post', { path: '/post/:post_id'}); 
+0

Bu bana doğrudan yardımcı olmadı, ama beni iki kere rotanın olduğu yere yönlendirdi;) – Mailo

İlgili konular