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}}
我有兩個問題:
當我點擊取消,正確的模板被加載, isEditing更改爲false,但仍然隱藏「編輯」按鈕。
行@transitionToRoute('post',@content)將我移動到未定義的頁面,似乎@content不是模型,而是DS.RecordArray。昨天它運行良好,但似乎有其他更改打破了它。
在此先感謝,BBLN!
你有兩個不同的命名空間,'App'&'EmberJs'這是故意的? – intuitivepixel
看起來好像我沒有在郵政路線(軌道生成器應用程序名稱作爲命名空間)上取代它,無論如何它們都是相同的,抱歉的混淆。 – BBLN
你可以發佈你的路由器代碼,或者更好的做一個jsFiddle嗎? –