一些背景知识:我来自一个 .Net 环境,我们必须在所有项目中使用 MVVM 来将视图与视图模型分开。现在我正在处理我自己的个人 PHP 项目,我决定使用相同的设计并将视图和视图模型分开。
因此,在视图上,我创建了一个视图模型对象并在必要时调用后台函数,而在视图中,代码仅用于提供显示。
例子:
视图.php
<?php
include('viewmodel.php');
$vm = new viewmodel.php();
if(some condition)
{
$vm->doSomething();
}
?>
<html>
<body>
//some form code
</body>
</html>
视图模型.php
<?php
//includes
class viewmodel
{
function viewmodel()
{
}
function doSomething()
{
}
}
?>
现在我已经学习了 jQuery,我想用它来使我的页面更加动态,减少往返服务器的流量,减少页面刷新的需要。
我见过这样的调用,它允许 jQuery 调用带有一些发布数据的 php 页面:
$.ajax({ url: '/my/site',
data: {action: 'test'},
type: 'post',
success: function(output) {
alert(output);
}
});
但是,这不再是面向对象的设计,我必须从我的视图模型中删除所有类定义才能使其正常工作。
jQuery 有没有办法对视图模型进行这些调用,或者使用 jQuery 是否意味着您必须返回到程序化的编程风格?