为了使我们的数据有效,我们提供一个数组key /value (键/值)对。key就是名字,value就是用户键入的字段的内容。
var data = [ {''other'':false} ];
var invalid = MyModel.validate(data);
我们的无效变量现在包含任何没有验证字段列表,现在我们要传递这些数据到view层中在页面中显示这些错误。
Presenting the invalid fields(显示无效的字段)
在这种情况下,我们需要在页面中显示一条错误信息。这个显示工作由view层完成,显示的数据来自controller提供。view层会用这些数据构建一个错误信息显示给用户,我们已经写好了,并且可以在许多情况下使用它。
View.Message = function(messageData, type){ var el = document.getElementById(’message’); el.className = type; var message = ‘
We have something to bring to your » attention
‘ + ‘
‘; } message += ‘
‘; el.innerHTML = message; } View.Message.prototype.show() { /* provide a slide-in animation */ }
这里的type 是css的一个class name,给用户自定义message的类型样式入口, 这个函数遍历所有的message数据并把他们显示在页面中。
Hooking it all together with a Controller(用控制层挂起这一切流程)
我们的model层存储了我们的数据并且能够告诉我们数据是否有效,view层给用户显示成功或者失败的消息,就剩下最后一步了,就是用户表单提交的时候验证表单信息。
/* use the event binding of your friendly neighbourhood JavaScript library or whatever you like to use */ addEvent(document.getElementById(’myform’), ’submit’, » MyController.validateForm);
MyController.validateForm = function(event){ var data = []; data[''other''] = document.getElementById(’other’).checked; var invalidFields = MyModel.validate(data);
if (invalid.length) { event.preventDefault(); // generate the view and show the message var message = new View.Message(invalidFields, ‘error’); message.show(); } }
好了我们完成了,model层和view层的方法我们以后还能重复利用哈
Frameworks
javascript mvc正在流行起来,但是 深入的理解怎样在你的工作中运用它会更有帮助。你可以自己做,也可以用已经存在的javascript mvc框架
下面 |