当涉及到交互式HTML5和模型绑定时,AngularJS非常强大。另一方面,像Yii这样的PHP框架可以实现快速、结构良好、安全和强大的web应用程序开发。这两种技术都为数据访问、迭代和页面布局提供了复杂的方法。
将这两种方法(客户端和服务器端的“页面设置”)混合在一起是一种好的做法还是坏的做法,还是与交互式的、无缝的HTML5 AJAX web应用程序的意义背道而驰?
我不是在谈论如何使用PHP (See this question)生成JS --我是在谈论如何生成一个使用AngularJS的视图。
我还知道,AngularJS页面应该(或者可以)通过REST服务与服务器通信以获取数据(See this question),而不是直接从变量中检索数据。但对我来说,用PHP为整个web应用程序单独设计“框架”似乎更方便(例如,构建主菜单或处理授权/会话等)。
发布于 2013-03-26 06:06:45
看起来你可能更喜欢用PHP进行开发,这让你无法充分发挥web应用程序的潜力。
PHP确实可以呈现局部视图和整体视图,但我不推荐这样做。
要充分利用HTML和javascript的可能性来制作web应用程序,即行为更像应用程序并严重依赖客户端呈现的web页面,您应该考虑让客户端维护管理状态和表示的所有责任。这将更容易维护,并将更加用户友好。
我建议您以更多以API为中心的方法进行更舒适的思考。与其让PHP输出一个预先渲染的视图,并使用angular进行纯粹的DOM操作,您应该考虑让PHP后端输出应该作用于RESTFully的数据,并让Angular呈现它。
使用PHP呈现视图:
/user/account
if($loggedIn)
{
echo "<p>Logged in as ".$user."</p>";
}
else
{
echo "Please log in.";
}
如何通过以API为中心的方法输出JSON来解决同样的问题:
api/auth/
{
authorized:true,
user: {
username: 'Joe',
securityToken: 'secret'
}
}
在Angular中,您可以执行get,并处理客户端的响应。
$http.post("http://example.com/api/auth", {})
.success(function(data) {
$scope.isLoggedIn = data.authorized;
});
以您提出的方式混合客户端和服务器端可能适用于维护不重要且您是单一作者的较小项目,但我更倾向于以API为中心的方式,因为这将是更正确的一致性分离,并且更容易维护。
https://stackoverflow.com/questions/15623967
复制相似问题