骨干模型验证标准(这样做有错吗?
Backbone model validation standards (Is it wrong to do it this way?)
我正在使用主干创建一个验证视图,该视图将处理给定输入上样式气球中验证消息的显示。 我创建了一个处理此功能的新视图。 为了执行验证并呈现视图,我在模型中设置了以下函数。
Dashboard.Models.EventModel = Backbone.Model.extend({
idAttribute: "Id",
// Model Service Url
url: function () {
var base = 'apps/dashboard/EventsDetails';
return (this.isNew()) ? base : base + "/" + this.id;
},
validate: function (attrs) {
var validTime = (attrs.Time) ? attrs.Time.match(/^(0?[1-9]|1[012])(:[0-5]'d) [APap][mM]$/) : true;
if (!validTime) {
new Dashboard.Views.ValidationMessageView({
$container: $('#txtNewEventTime'),
message: 'Invalid Time'
}).render();
return 'error';
};
}
});
我的问题:创建新视图(ValidationMessageView)并从模型中呈现它是否违反标准?
恕
我直言:是的..它看起来不是很好。
您应该在Model
之外实例化View
。
您应该在模型中绑定事件error
,从外部捕获它并在那里实例化ErrorView
。
检查Model.validate
文档中的示例
在快速中,您可以拥有这样的AllErrorsView
:
// code simplfied and not tested
var AllErrorsView = Backbone.View.extend({
initialize: function(){
this.model.on( "error", this.showError, this );
},
showError: function( model, error ){
if( error == "txt_new_event_time" ) {
new Dashboard.Views.ValidationMessageView({
el: "#txtNewEventTime",
message: "Invalid Time"
}).render();
}
// ... more errors
}
});
var myAllErrorsView = new AllErrorsView({ model: myModel });
我不得不说,这不是我在你的代码中看到的唯一奇怪的东西。例如,我不明白您的Model.url
实现的含义,我认为您可以使用Model.urlRoot属性解决它。
相关文章:
- 页面在我的javascript执行后重新加载,我不希望它这样做
- 如何在将鼠标悬停在提交/锚点上时检查复选框是否已选中,并显示提示用户这样做的警报
- JavaScript 如果数组包含名称,则不要这样做
- 我用脚本创建了一个按钮.我可以通过点击按钮调用其他函数吗?我这样做,但失败了
- Jquery语法;也这样做”;
- 如果我不这样做会发生什么;t在javascript中的变量中分配新的Image
- 如果他们不这样做,就从我的数组中删除东西't没有前缀
- 如何使用“;这个“;在javascript中?这样做的目的是什么
- 如果我不这样做会发生什么;t有页码吗?继续循环帖子..为什么需要分页,对于页脚
- 禁用 ALT+F4,是的,我知道不建议这样做
- 使用默认值定义构造函数.我这样做对吗?
- 我刚刚开始使用 MEAN 堆栈.我试图将我的表单提交数据存储到 mongo 数据库,但我无法这样做
- 为什么不这样做
- Node.JS/Javascript - 将字符串转换为整数正在返回 NaN,而我不希望它这样做
- 在angularjs中拥有$sce或严格上下文转义有什么好处,为什么反应不需要这样做
- 如何分解此代码以减少重复(以及应该这样做)
- 嵌套的 if/else 语句讨论了分配变量.我已经这样做了,但它仍然不起作用
- blur() 无法以编程方式工作 |但在从用户启动时会这样做
- Webkit 似乎不支持层上的 $.focus(),而 IE9 支持.无论如何,让webkit浏览器也这样做
- 骨干模型验证标准(这样做有错吗?