我正在编写一个Ember.js
应用程序来显示从 CRUD RESTful API 获取的嵌套评论列表。
进行到一半时,我意识到我可能在滥用Ember.js
而不是利用它的范例。
例如,我的Comment
对象如下所示:
App.Comment = Em.Object.extend({
id: null,
author: null,
text: null,
delete: function() { /* AJAX call to API here */ }
});
将delete()
函数作为模型对象的一部分而不是控制器可以吗?
我的另一个疑问是我对状态的处理。在我的模板中,我执行以下操作:
{{#if view.comment.editing}}
{{view Ember.TextArea valueBinding="view.comment.text"}}
<a href="#" {{action cancelEditingComment}}>Cancel</a>
{{else}}
<p>{{view.comment.text}}</p>
<a href="#" {{action editComment}}>Edit</a>
{{/if}}
然后在我的路由器中,editComment
andcancelEditingComment
动作将委托给Comment
,它具有以下功能:
startEditing: function() { this.set('editing', true); }
cancelEditing: function() { this.set('editing', false); }
我不禁认为我做错了什么,尽管这种代码似乎有效。
您对如何重组我的代码有任何建议,以及任何可能对我有帮助的推荐阅读吗?