2013-03-30 3 views
0

У меня возникли проблемы с ember.js. Используя следующую настройку маршрутизации, я не могу заставить записи/новый маршрут работать. Индекс работает отлично, но элементы/новый шаблон просто отказываются от рендеринга. Я думаю, что я пытаюсь сделать представление внутри renderTemplate, но я не уверен, что я делаю неправильно. Ваша помощь будет высоко оценена.Отображение проблем, связанных с вложенным маршрутом в ember

Journal.Router.map -> 
    @resource 'entries', {path: '/' }, -> 
     @route 'new' 
     return 
    return 

Journal.EntriesNewRoute = Ember.Route.extend 
    renderTempalte: -> 
     @render 'entriesNew', { 
      into: 'application' 
     } 
    setupController: (controller) -> 
     controller.set 'heading', 'new entry' 
     return 

Journal.EntriesNewView = Ember.View.extend 
    className: ['entries-new'] 
    templateName: 'entries/new' 

Journal.EntriesNewController = Ember.Controller.extend 
    heading: "New Journal Entry" 

    createEntry: -> 
     title = @get 'newTitle' 
     content = @get 'newContent' 

     if !title.trim() and !content.trim() then return null 

     Journal.Entry.createRecord 
      title: title 
      content: content 

     @get('store').commit() 
     return 

И записи/новый шаблон

{{ heading }} 

{{view Ember.TextField id="entry-title" placeholder="Enter a title" valueBinding="newTitle"}} 

{{view Ember.TextArea id="entry-content" placeholder="What do you have to say?" valueBinding="newContent"}} 

<button {{action "createEntry"}} class="save">Save</button> 
+0

У меня возникла такая же проблема. Я не понимаю, как обрабатываются шаблоны и где они отображаются в случае вложенных маршрутов. –

+0

Если у вас возникли трудности с этим, я настоятельно рекомендую [Peepcode's Fire Up Ember.js Tutorial] (https://peepcode.com/products/emberjs). Он ответил на множество вопросов и очень смутился о том, когда и почему вы должны входить в маршруты. – JeremyC

ответ

2

В Вашем маршруте, то 'в' должны быть нацелены на маршрут, который имеет свой {{выход}}

renderTempalate: -> 
    @render 'entriesNew', { 
     into: 'entries' 
    } 

Хотя renderTemplate По умолчанию действие hook заключается в рендеринге в его выходных ресурсах, поэтому, если ваш шаблон «Образцы» имеет {{outlet}}, и вы подчиняетесь строгим соглашениям об именах, вам вообще не нужно определять этот крючок.

Если это не проблема, возможно, разместите свой шаблон для заметок

+0

Спасибо, я закончил тем, что сломал то, над чем работал, после просмотра учебника Peepcode и понял, что я неправильно использовал вложенные маршруты. – JeremyC

Смежные вопросы