Ember.js emberjs和ember数据-通过表单提交创建记录返回未定义
我有这个。除了我不能通过提交评论的表单来创建新评论之外,一切都正常。当我提交表单时,控制台显示undefined。我希望获得的是抓住一个现有的帖子,然后创建一条属于该帖子的评论。这就是事情的流程,用户将单击帖子,然后单击特定的帖子标题来显示它,然后单击添加评论来对该帖子进行评论。重要的是要注意,此时,单击AddComment按钮将返回undefined 代码的相关部分包含addComment和save方法 **“把手”模板中的相关部分Ember.js emberjs和ember数据-通过表单提交创建记录返回未定义,ember.js,ember-data,Ember.js,Ember Data,我有这个。除了我不能通过提交评论的表单来创建新评论之外,一切都正常。当我提交表单时,控制台显示undefined。我希望获得的是抓住一个现有的帖子,然后创建一条属于该帖子的评论。这就是事情的流程,用户将单击帖子,然后单击特定的帖子标题来显示它,然后单击添加评论来对该帖子进行评论。重要的是要注意,此时,单击AddComment按钮将返回undefined 代码的相关部分包含addComment和save方法 **“把手”模板中的相关部分 <script type='text/x-handle
<script type='text/x-handlebars' data-template-name='comment/new'>
{{#if controller.isAddingNew}}
<form {{action save on='submit'}}>
{{view Ember.TextArea valueBinding="body" placeholder="body"}}
<button type="submit"> save comment </button>
</form>
{{/if}}
<br/>
<div>
<button {{action addComment}} {{bindAttr disabled="isAddingNew"}}>
Add Comment
</button>
</div>
</script>
使用render通过“发布/显示模板”提交评论表单
您需要使用以下方法创建注释记录:
var comment = EmBlog.Comment.createRecord()
或
您可以在用户填写表单之前创建记录,并将值绑定到该已创建的记录,仅在用户单击“保存”时提交,也可以将文本区域绑定到控制器属性,并在用户单击“保存”后创建和提交记录
下面是第二种方法的示例。您需要使用以下方法创建注释记录:
var comment = EmBlog.Comment.createRecord()
或
您可以在用户填写表单之前创建记录,并将值绑定到该已创建的记录,仅在用户单击“保存”时提交,也可以将文本区域绑定到控制器属性,并在用户单击“保存”后创建和提交记录
下面是第二种方法的要点。很棒的帖子。就一句话。对于最新的库,deletePost不起作用 未捕获的TypeError:无法调用未定义的方法“deleteRecord” 解决方案:
destroyPost: function (post) {
post.one('didDelete', this, function () {
this.transitionTo('posts.index');
});
post.deleteRecord();
post.get('transaction').commit();
}
棒极了。就一句话。对于最新的库,deletePost不起作用 未捕获的TypeError:无法调用未定义的方法“deleteRecord” 解决方案:
destroyPost: function (post) {
post.one('didDelete', this, function () {
this.transitionTo('posts.index');
});
post.deleteRecord();
post.get('transaction').commit();
}
你是个绅士学者。非常感谢您在我的emberjs之旅中解决了我的这个痛点。您已经做得够多了,但如果您还有几分钟的时间,只是为了学习,您知道为什么在创建新注释后单击“后退”按钮会显示错误:必须为装置定义id属性{id:0,title:first title,body:first body,comments:[ember423]}即使设备中已经定义了id属性。非常感谢。也许您不能拥有id:“0”,请尝试id:“1”非常正确。将其更改为1将删除错误。非常感谢,祝你愉快,你是一位绅士学者。非常感谢您在我的emberjs之旅中解决了我的这个痛点。您已经做得够多了,但如果您还有几分钟的时间,只是为了学习,您知道为什么在创建新注释后单击“后退”按钮会显示错误:必须为装置定义id属性{id:0,title:first title,body:first body,comments:[ember423]}即使设备中已经定义了id属性。非常感谢。也许您不能拥有id:“0”,请尝试id:“1”非常正确。将其更改为1将删除错误。非常感谢,祝你度过愉快的一天
destroyPost: function (post) {
post.one('didDelete', this, function () {
this.transitionTo('posts.index');
});
post.deleteRecord();
post.get('transaction').commit();
}