Coffeescript 余烬数据(REST适配器)创建模型实例,但不发布
在编写我的第一个Ember应用程序的过程中,我还没有弄清楚如何使用REST适配器将新资源发布到我的API中 应用程序成功地检索并显示了一个资源列表,因此我的模型似乎定义正确,适配器和API之间的通信正常。当我单击CreateBugView按钮时,新实例显示在列表中,因此这部分也可以工作。但是,我可以在inspector中看到,没有对API发出POST请求,并且当我刷新页面时,可以预见,该实例在任何地方都看不到 我使用的是1.0.0-rc.1版本的余烬和我今天克隆和构建的余烬数据版本 下面是我的代码,如果有人能帮我找出问题所在,我将不胜感激Coffeescript 余烬数据(REST适配器)创建模型实例,但不发布,coffeescript,ember.js,ember-data,Coffeescript,Ember.js,Ember Data,在编写我的第一个Ember应用程序的过程中,我还没有弄清楚如何使用REST适配器将新资源发布到我的API中 应用程序成功地检索并显示了一个资源列表,因此我的模型似乎定义正确,适配器和API之间的通信正常。当我单击CreateBugView按钮时,新实例显示在列表中,因此这部分也可以工作。但是,我可以在inspector中看到,没有对API发出POST请求,并且当我刷新页面时,可以预见,该实例在任何地方都看不到 我使用的是1.0.0-rc.1版本的余烬和我今天克隆和构建的余烬数据版本 下面是我的代
App = Em.Application.create()
# Templates
require 'templates/application'
require 'templates/index'
# Models
App.Bug = DS.Model.extend
name: DS.attr 'string'
# Views
App.CreateBugView = Em.View.extend
tagName: 'button'
click: (evt) ->
bug = App.Bug.createRecord
name: 'Sean'
# Routes
App.IndexRoute = Em.Route.extend
model: -> App.Bug.find()
setupController: (controller, bugs) ->
controller.set 'bugs', bugs
controller.set 'App', App
# Store
App.Store = DS.Store.extend
revision: 12
# Router
App.Router.map ->
@route 'index', path: '/'
App.initialize()
索引模板
<ul>
{{#each bugs}}
<li>{{name}}</li>
{{/each}}
</ul>
{{#view App.CreateBugView}}
Create new bug!
{{/view}}
{{{#每个bug}
- {{name}}
{{/每个}}
{{{#view App.CreateBugView}
创建新的错误!
{{/view}
我认为只有在存储上调用commit()时,模型才会持久化
显然,如果不构建RESTAPI,我无法进行完全测试,但是使用fixture适配器,我可以在我的控制器上调用save()方法,从而推送@store.commit()。对于rest适配器,这将生成POST事件
请看一下这个JSFIDLE:
及
谢谢你告诉我需要提交,我发现这个答案与我的问题非常吻合:从MVC分离的角度来看,你的方式似乎更干净,不过,我肯定也会研究ArrayController。
click: (evt) ->
bug = App.Bug.createRecord
name: 'Sean'
@.get('controller').save()
App.IndexController = Em.ArrayController.extend
save: ->
console?.log("Commiting changes to store")
@store.commit()