在ember中解决与嵌套路由关联的视图问题

时间:2013-03-30 18:34:11

标签: ember.js

我在使用ember.js时遇到了麻烦。使用以下路由设置我无法获得条目/新路由。索引工作正常但条目/新模板只是拒绝呈现。我认为这是我试图在renderTemplate中渲染视图的地方,但我不确定我做错了什么。非常感谢您的帮助。

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>

1 个答案:

答案 0 :(得分:2)

在您的路线中,'into'应定位到包含{{outlet}}

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

虽然renderTemplate hook的默认操作是渲染到它的资源插座中,但只要你的Entries模板中有{{outlet}}且你遵守严格的命名约定,你就不需要定义那个钩子了一点都不。

如果不是问题可能会发布您的参赛作品模板