emberjs表单创建一个新记录,但编辑表单不会绑定到新记录

时间:2013-04-03 19:34:29

标签: ember.js handlebars.js ember-data

我一直在讨论编辑已经创建的子记录。我使用相同的形式部分创建和编辑。我可以使用该表单部分成功创建子记录,但如果我单击编辑,由于某种原因,编辑表单不显示或包含刚刚创建的记录,编辑表单基本上是空的。

要重现错误,请勿通过fixtureAdapter添加注释。如果记录在注释fixtureAdapter中,您将在单击编辑时看到该记录。事实上即使您使用fuxtures,您也​​只能编辑附加到父母的第一个子记录而不是第二个或第三个等。要重现它让没有任何评论夹具然后创建新记录,然后点击修改按钮,它将为空。要创建新记录,请点击帖子 - > 然后'帖子标题' - > 在底部 addComment-> 然后保存,您会看到该记录已创建,现在点击修改,它将为空。

这是 jsfiddle

editComment和CommentEditController

EmBlog.CommentEditController = Ember.ObjectController.extend({

   needs: ['comment', 'postsShow'],
   isEditing: false,

   editComment: function() { 

     var post = this.get('controllers.postsShow.content');
     console.log(post);

     var postId = post.get('id');
     console.log(postId);

     comment = EmBlog.Comment.find(postId);
     console.log(comment);

     transaction = comment.get('store').transaction();
     console.log(transaction);

     console.log(this.get('content')); 

     this.set('content', comment);

     transaction.add(this.get('content'));

     this.transaction = transaction;   

     this.set('isEditing', true);

  },

  save: function(){

   var comment = this.get('content');
   comment.one('didUpdate', this, function() {
      this.set('isEditing', false);
   });

  this.transaction.commit();
  this.transaction = null;
   console.log(this.get('content')); 
  }  

});

把手部分模板

<script type="text/x-handlebars" data-template-name="comment/_form">
 <form {{action save content on='submit'}}>
   {{view Ember.TextArea valueBinding="body" placeholder="body"}}
   <button type="submit"> save comment </button>  
 </form>
</script>

用于编辑现有记录的模板

<script type='text/x-handlebars' data-template-name='comment/edit'>
  {{#if controller.isEditing}}
    {{partial 'comment/form'}}
   {{/if}} 
   <br/>
  <div>
    <button {{action editComment this}} {{bindAttr disabled="isEditing"}}>
      Edit Comment</button>
 </div>
</script>

您可以看到它与添加新记录的表单相同

<script type='text/x-handlebars' data-template-name='comment/new'>
  {{#if controller.isAddingNew}}
    {{partial 'comment/form'}}
 {{/if}} 
<br/>
<div>
  <button {{action addComment}} {{bindAttr disabled="isAddingNew"}}>
   Add Comment</button>
</div>

0 个答案:

没有答案