私のアプリには、テンプレートとドキュメントがあります。テンプレートからドキュメントを作成できるようにしたいです。つまり、ユーザーはテンプレートの表示ページに移動し、ボタンをクリックすると、テンプレートからドキュメント テキストが事前に入力された新しいドキュメント ページにリダイレクトされます (テキストを事前に入力するだけでよく、ドキュメントが作成されたテンプレートを知っているかどうかは気にしません)。
しかし、テキストを新しいドキュメント ページに渡すにはどうすればよいでしょうか。
私のアプリには、テンプレートとドキュメントがあります。テンプレートからドキュメントを作成できるようにしたいです。つまり、ユーザーはテンプレートの表示ページに移動し、ボタンをクリックすると、テンプレートからドキュメント テキストが事前に入力された新しいドキュメント ページにリダイレクトされます (テキストを事前に入力するだけでよく、ドキュメントが作成されたテンプレートを知っているかどうかは気にしません)。
しかし、テキストを新しいドキュメント ページに渡すにはどうすればよいでしょうか。
私は最終的に次のことをしました:
App.Router.map ->
@resource 'documents', ->
@route 'new'
@route 'new_from_template', path: '/new/:template_id'
App.DocumentsNewFromTemplateRoute = Ember.Route.extend
model: (params) ->
model = App.Document.createRecord()
if params.template_id
App.Template.find(params.template_id).then (template) ->
model.set 'text', template.get('text')
model
setupController: (controller, model) ->
if model._reference.type == App.Template
model = @model(template_id: model.id)
@currentModel = model
@controllerFor('documentsNew').set 'model', model
renderTemplate: ->
@render 'documents/new'
そして、テンプレート用の新しいドキュメント フォームにリンクするには、次のようにします。
{{#linkTo 'documents.new_from_template' template}}Create a document{{/linkTo}}