如何在不丢失无效输入的情况下呈现视图中的Backbone.Model错误
How can I render Backbone.Model errors in a view without losing the invalid input?
我在Backbone View中有一个表单,其中用户输入被收集并存储在模型中。假设用户输入的信息违反了支持模型的验证逻辑。如何在不丢失无效输入的情况下将这些错误输出到视图?
目前,我只是重新渲染视图,它将所有输入替换为模型中的输入,但由于无效输入从未存储在那里,它们丢失了。
有没有一种简单的方法可以捕获所有无效数据,并将其与错误消息一起重新呈现,或者我必须编写自定义jQuery来在表单DOM中附加嵌套的错误消息而不重新呈现它?
您的视图可以跟踪validate方法引发的错误事件,并相应地进行渲染。例如,
var MView=Backbone.View.extend({
initialize: function() {
this.model.bind("error",this.renderErr,this);
this.model.bind("change",this.render,this);
},
render: function() {
console.log("ok");
},
renderErr: function(model,attrs) {
//attr contains the attributes passed to validate
console.log(attrs);
}
});
var M=Backbone.Model.extend({
defaults: {
name:"locked",
whatever:"value"
},
validate:function(attrs) {
//returns the attributes being set. Will be used in the renderErr method
if (attrs.name!="locked") return attrs;
}
});
var m=new M();
var mv=new MView( {model:m} );
mv.render();
m.set({name:"err",whatever:"other"});
m.set({name:"locked",whatever:"other"});
相关文章:
- backbone.js无法渲染视图
- Backbone.js将模型绑定到视图时出错
- Backbone.js视图中的多个模型
- 带有jquery插件的backbone.js视图
- 如何在Backbone.js中编写可重用的模型和视图
- Backbone+RequireJS+Mediator模式导致视图逻辑短路和无限循环
- 为什么当我单击X时,所有项目都会从我的Backbone.js视图中删除
- backbone.js可以't传递集合中的模型项's查看项目's视图
- 如何将会话数据从集合传递到视图?(Backbone JS/Coffeescapept)
- 单击'Backbone.js视图'不要工作
- 从Backbone中的另一个视图调用新视图
- Backbone js代码气味-嵌入子视图的更好方法
- 如何在Backbone中创建自实例化视图
- 视图是指定给模型的还是指定给Backbone.js中视图的模型
- 支持使用Backbone.js视图加载异步模板
- Can-Backbone视图在一个html元素上有两个不同的事件
- Backbone.js视图可以有一个模型和一个集合吗
- backbone.js视图没有't由于异步获取而显示结果;t渲染
- 在keyup上初始化一个视图到多个视图- backbone
- 如何在渲染另一个视图之前清除视图?Backbone.js