【发布时间】:2014-06-06 05:11:46
【问题描述】:
我有一个显示帖子列表的路线,还有一个用于创建新帖子的表单。
posts_route.js.coffee:
Fortchan12.PostsRoute = Ember.Route.extend
model: ->
Ember.RSVP.hash
posts: @get('store').findAll 'post'
newPost: @get('store').createRecord 'post'
actions:
create: (post) ->
post.setProperties
name: this.controller.get('name')
body: this.controller.get('body')
photo: this.controller.get('photo')
post.save()
这是车把模板:
<h2>make a new post</h2>
<form {{action 'create' newPost on="submit"}}>
{{#if isSaving}}
<p>saving post...</p>
{{/if}}
<p>{{input type="text" value=name}}</p>
<p>{{textarea value=body}}</p>
<button type="submit">Create</button>
</form>
<h2>posts</h2>
{{#each posts}}
{{name}} says
{{body}}
{{created_at}} {{#link-to 'post' this}}
{{id}} {{/link-to}}
<br />
这似乎工作正常,但我想在提交并保存后清除表单,以便我可以发布另一个帖子。我可以在路由中的创建操作中执行此操作以清除表单(尽管它似乎没有清除文件输入字段):
self.controller.setProperties({name: '', body: '', photo: ''})
但这似乎并没有“重置”模型,当我再次提交表单时,它试图 PUT 到 /posts/:id,而不是 POST 到 /posts:
PUT http://0.0.0.0:3000/posts/70 404 (Not Found)
我不确定我应该做什么,我已经读过使用 setupController 是一种选择,但我不确定如何像我一样在我的路线中使用多个模型来做到这一点。
【问题讨论】:
标签: javascript ruby-on-rails forms ember.js