0

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>
4

1 に答える 1

2

ルートでは、「into」は {{outlet}} を持つルートをターゲットにする必要があります

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

renderTemplate フックのデフォルト アクションはそのリソース アウトレットにレンダリングすることですが、エントリ テンプレートに {{outlet}} があり、厳密な命名規則に従っている限り、そのフックを定義する必要はまったくありません。

それが問題でない場合は、エントリーテンプレートを投稿してください

于 2013-04-08T01:25:51.623 に答える