Ember创建的记录与当前控制器不同

时间:2013-07-03 01:58:20

标签: ember.js coffeescript ember-rails

所以我正在制作一个小玩具余烬应用程序,它会向用户提供一些改进的提示来创建漫画。在一段时间后,用户将能够上传他们完成的漫画。

我已经完成了整个工作,直到将用户上传表单上传完成的漫画。

到目前为止,一切都是一条路线,控制器和模型(提示)。最后,他们真的应该使用漫画记录。目前,所有内容都在同一个模板中,我将上传表单放入视图中:

App.UploadComicView = Ember.View.extend
  templateName: "upload_comic"
  tagName: "form"
  classes: ['form-horizontal']

  submit: ->
    @get('controller').uploadComic(@get('comicTitle'))
    false

对于以下型号:

App.Comic = DS.Model.extend
  title: DS.attr('string')

我尝试在prompts_controller中执行以下操作:

uploadComic: (title) ->
  App.Comic.createRecord(title: title)
  @get('store').commit()

但是,尝试将更新操作发送到后端的提示控制器,而不是对漫画控制器的创建请求。

所以看起来我真的应该有一个单独的余烬控制器/模板/模型/路线的漫画,但我不知道如何从挑战结束时的提示控制器到漫画控制器,以便在数据库中创建一个新的漫画对象。更糟糕的是,我还需要将当前提示控制器中的选定提示发送到新的上下文。

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

当您执行App.Comic.createRecord时,它会对请求正文POST执行/comics{title: 'your title'}。这与您从哪个控制器/位置无关。你是说它去其他地方吗?如果是这种情况,请发布jsbin。

关于与/访问其他控制器进行通信的需要,您可以在其他控制器内使用needs声明。

needs: 'comics'
comicsBinding: 'controllers.comics'

您现在可以通过其中的this.get('comics')访问漫画控制器。