2013-07-03 99 views
1

因此,我正在製作一個小玩具燼應用程序,它會向用戶提供一些即興創建漫畫的提示。經過一段時間後,用戶將能夠上傳他們完成的漫畫。Ember創建一個不同於當前控制器的記錄

我已經完成了所有工作,直到將用戶上傳已完成的漫畫的形式呈現給用戶。

到目前爲止,一切都是一條路線,控制器和模型(提示)。儘管如此,他們確實應該使用漫畫記錄。目前,一切都在同一個模板,我把上傳表單到視圖:

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

當你做一個App.Comic.createRecord它會做一個POST/comics請求正文{title: 'your title'}。這與您從哪個控制器/位置無關。你是說它在別處嗎?如果是這種情況,請發佈一個jsbin。

關於與其他控制器進行通信/訪問的需求,您可以在其他控制器內使用needs聲明。

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

您現在可以通過裏面的this.get('comics')訪問漫畫控制器。

+0

所以我解決了這個問題的一部分,但我還沒有完全解決。我將新記錄分配給一個變量'comic',然後做了'comic.get('store')。commit()'它將記錄保存到REST端點,但它也試圖持續提示,這應該根本不需要更新(在2013-07-03 09:46:46 -0400'上發送127.0.0.1的'Started PUT「/ prompts/8」),因爲api中沒有更新操作,所以失敗。 – DVG

+0

您可以使用'transaction'將漫畫的更改分離出來。看到這個[答案](http://stackoverflow.com/a/17440711/2488281)。 –

+0

謝謝,我無法讓交易生效,所以我就此開始了一個新問題。謝謝! – DVG

相關問題