我最近开始玩bacon.js,不知怎的,我真的很喜欢用功能性反应式编程风格组合EventStream。
我目前正在实施表单验证。 目前的代码:
var name = textInputAsEventStream("#name"); //transforms input to evenStream
var nameValid = name.map(specificValidationFunction); //here I validate a name that enters a stream
nameValid.onValue(function(valid){//do something with jquery at the web interface, i.e. feedback of the validation}
问题是,当您有20个表单需要验证时,变量会爆炸。 (极端的例子)有没有人对如何以优雅的方式解决这个问题有任何想法?
我不确定下面的代码是否真的可行:
var valid = nameValid.and(surnameValid).and(adressValid).and(codeValid).and(cityValid).and(telValid).and(emailValid);
//here I compose al 'validition'-streams into one
有什么建议吗?
答案 0 :(得分:0)
你基本上有正确的方法。将公共部分重构为辅助函数将有助于使用样板。
要整理整个表单是否有效,可以使用数组方法:
<?php
echo $this->Form->create('Question', array('type' => 'file'));
echo $this->Form->input('files.', array('type' => 'file', 'multiple'));
echo $this->Form->end('Upload');
?>