我是一名java开发人员。我在大多数项目中使用SWT和JFace数据绑定。最近,我一直致力于开发涉及PHP的不同类型的项目。我需要在服务器端使用PHP开发一个Web应用程序,在客户端使用JavaScript。到目前为止,我正在用jQuery来完成所有的工作。 jQuery很不错,但不足以提供快速构建Web界面所需的所有管道。
在桌面应用程序中,JFace数据绑定提供了将小部件,表单,标签绑定到模型的所有功能,允许您将表单内容同步到对象,验证表单内容并在内容正常时提供反馈或不。
例如:对于文本字段,您可以将文本值绑定到对象的属性。添加验证以检查文本值是否为空。为空时,显示一个工具提示,要求用户输入值并禁用提交按钮。
所以我在问你,是否有类似JFace Databinding for JavaScript的东西?
答案 0 :(得分:0)
答案 1 :(得分:0)
现在,支持数据绑定的现代组件是有角度的,aurelia和react(即将失效的... + redux之类)。 jQuery没有提供很好的数据绑定实现。它需要手动连接所有道具更改。可能实现某种观察者/订阅者方法。
或将某些组件用于数据绑定任务,该组件可提供足够方便的数据绑定定义命令。我用databindjs做的。例如
// Lets assume that there is just simple form (target)
var simpleForm = {
input: $('.simple .input-value'),
output: $('.simple .output-value')
};
// And here is the simple model object (source)
var model = {
text: 'initial value'
};
// Lets set two directional binding between [input] <-> [text]
var simpleBinding = bindTo(simpleForm, () => model, {
'input.val': 'text', // bind to user input
'output.text': 'text' // simple region that will react on user input
});
// This command will sync values from source to target (from model to view)
updateLayout(simpleBinding);
subscribeToChange(simpleBinding, () => {
$('.simple .console').html(JSON.stringify(model));
});
// Just initialize console from default model state
$('.simple .console').html(JSON.stringify(model));
完整的解决方案here