2013-07-14 82 views
1

我這個指南:http://emberjs.com/guides/getting-started/toggle-todo-editing-state/編輯模式,如何在狀態之間切換

所以我寫了這個代碼:

App.PostEditController = Ember.ObjectController.extend 
    headerTitle: 'Editing post' 
    buttonTitle: 'Edit' 

    destroy: -> 
    @content.deleteRecord() 
    @store.commit() 
    @transitionToRoute('posts') 

    save: -> 
    @content.save().then => 
     @transitionToRoute('post', @content) 

    cancel: -> 
    console.log("Canceling! " + @content) 
    if @content.isDirty 
     @content.rollback() 
    @transitionToRoute('post', @content) 

柱控制器:

App.PostController = Ember.ObjectController.extend 
    commentsVis: false 
    isEditing: false 

    showComments:() -> 
    this.set("commentsVis", true) 
    @transitionToRoute('comments', post) 

    editMode: -> 
    this.set("isEditing", true) 
    @transitionToRoute('post.edit') 

路線

EmberJs.PostRoute = Ember.Route.extend 
    model: (params) -> 
    App.Post.find(params.post_id) 
    setupController: (controller, model) -> 
    controller.set('content', model) 
    controller.set('isEditing', false) 

EmberJs.PostEditRoute = Ember.Route.extend 
    model: (params) -> 
    App.Post.find(params.post_id) 
    setupController: (controller, model) -> 
    controller.set('content', model) 

Vi EWS:

帖子:

<h1>{{title}}/{{parseDate created}} by {{user.email}}</h1> 

<p>{{body}}</p> 

<div id="discussion"> 
{{#unless commentsVis}} 
<a href="#" {{action 'showComments' this}}>View discussion</a> 
{{/unless}} 
</div> 

{{outlet}} 

{{#unless isEditing}} 
<button type="submit" {{action 'editMode'}}> 
    Edit 
</button> 
{{/unless}} 

編輯:

<h1>Edit Post</h1> 

<form> 
    <div class="input string"> 
    <label>Title</label> 
    {{view Ember.TextField valueBinding='title' name='title' viewName='titleField'}} 
    </div> 
    <button type="submit" class="button" {{action save}}> 
    Edit 
    </button> 
    <button type="submit" class="button alert" {{action destroy}}> 
    Delete 
    </button> 
<a href="#" {{action cancel}}>Cancel</a> 
</form> 

{{outlet}} 

我有兩個問題:

  1. 當我點擊取消,正確的模板被加載, isEditing更改爲false,但仍然隱藏「編輯」按鈕。

  2. 行@transitionToRoute('post',@content)將我移動到未定義的頁面,似乎@content不是模型,而是DS.RecordArray。昨天它運行良好,但似乎有其他更改打破了它。

在此先感謝,BBLN!

+0

你有兩個不同的命名空間,'App'&'EmberJs'這是故意的? – intuitivepixel

+0

看起來好像我沒有在郵政路線(軌道生成器應用程序名稱作爲命名空間)上取代它,無論如何它們都是相同的,抱歉的混淆。 – BBLN

+0

你可以發佈你的路由器代碼,或者更好的做一個jsFiddle嗎? –

回答

0

問題解決了,謝謝大家。

新航線:

App.PostEditRoute = Ember.Route.extend 
    needs: ['post'] 
    setupController: (controller, model) -> 
    this.controllerFor("post").set("isEditing", true) 
    controller.set('content', this.controllerFor("post").get("content")) 

現在具有mongoid麻煩:O(undefined method `first` on create如果有人想幫助:d)

相關問題