我是emberjs(1.0.0-RC1)的新手,我在轨道上使用它。我想在不使用ember模型的情况下提交会话表单。我觉得这更好,因为我的rails应用程序中没有真正的会话模型。目前有效的是:
#login_controller.js.coffee
SkillUp.LoginController = Ember.ObjectController.extend
# Just a title to pass to the template, for fun
title: "Login Controller"
submit: (controller) ->
model = @get 'model'
model.get('transaction').commit()
#session.js.coffee
SkillUp.Session = DS.Model.extend
email: DS.attr 'string'
password: DS.attr 'string'
#login_route.js.coffee
SkillUp.LoginRoute = Ember.Route.extend
setupController: (controller) ->
controller.set 'title', "Login"
controller.set 'content', SkillUp.Session.createRecord()
<!-- login.handlebars -->
<h2>template: {{title}}</h2>
<form>
{{#with controller}}
email: {{view Ember.TextField valueBinding="email"}}
password: {{view Ember.TextField valueBinding="password" type="password"}}
<button {{action submit}}>Submit</button>
{{/with}}
</form>
正如我所说,我的目标是删除session.js.coffee,因为它不存在rails模型。
感谢帮助
答案 0 :(得分:1)
我不建议直接实施$.ajax
。我建议保留DS模型。如果您使用DS.FixtureAdapter
,这应该可以使测试更容易。理想情况下,您应该将所有ajax保留在应用程序中的图层后面。您不应该在应用程序的各个部分中放入$.ajax
。
答案 1 :(得分:0)
您可以在控制器方法中使用$ .ajax手动使用jQuery将值发布到rails。
$.ajax('/sessions', {
type: 'POST',
data: {
email: this.get('email'),
password: this.get('password)
},
...
});
为成功和失败添加适当的处理程序。