2

我已经从jsfiddle为 ember.js 集成了 Boronine 的优秀字段验证代码。虽然这很好,但我仍然需要执行表单级别的验证,以确保当用户提交表单时,一切正常。

最好的方法是什么?有没有一种方法可以将字段标记为已验证,以便表单处理程序可以简单地遍历字段以查看已验证的内容?

MP.SignUpFormView = Em.View.extend({
    submitLogin:function (event) {
        // walk through object fields to perform validation here, but how?!
    }
});

编辑:

为清楚起见,我正在使用 Handlebars 和绑定,而不是尝试遍历 DOM 对象等。

4

1 回答 1

5

您尝试使用的模式在遵循文档脚本模式的应用程序中是有意义的,而 Ember 没有。您可以强制执行这项工作,但您会发现应用程序中的每个下一步都会变得越来越难。

在 Ember 中,显示由数据对象支持,因此 Ember 应用程序中的表单字段绑定到某个对象的属性,并且在进行更改时,值会立即更新。你甚至不需要一个<form>除了造型。

当用户想要对这个对象采取一些行动(比如将它持久化到服务器)时,应用程序的当前状态将回答“当用户现在想要采取这个行动时会发生什么?”这个问题。用户单击此处的按钮并不意味着“现在序列化表单中的数据并执行某项操作”,而是表示“我已经完成了对这个对象的属性的更改,现在想在应用程序中执行其他操作”。

您的车把模板看起来像这样:

{{view Ember.Textfield valueBinding="name"}}
{{view Ember.Textfield valueBinding="age"}}

<button {{action save content}}>Save</button>

以及您的应用程序中可以处理的可能状态

Ember.Route.extend({
  save: function(router, event){
    if (event.context.validate()){
      router.transitionTo('someNewState')
    }
  }
})
于 2012-12-24T04:45:53.047 回答