我想设计一个包含多篇文章的博客。在主页中,几个图块将提供文章的链接,当用户点击其上带有文章标题的特定图块时,他将被重定向到具有该完整文章的新页面。
我理解在这种情况下制作单页应用程序几乎没有帮助。
如果我使用Angular JS设计整个网站会有意义吗?如果是,如果我想使用Angular JS设计它,我该怎么办?我应该避免使用路由,因为我已经知道它主要用于SPA,我应该使用$ location或者其他东西吗?或者根本不放弃使用Angular JS进行设计的想法?你们有没有人用Angular JS设计过多页应用程序?
您的指导会很有帮助。
答案 0 :(得分:0)
在确定用于设计应用程序的语言之前,了解您的应用程序将要执行的操作非常重要。在你的情况下,一个博客。
如果你分析应用程序的功能,下面三个项目(有/可能更多,但对于这个用例,这三个就足够了)获得突出:
1. 流程表示您可能没有SPA而是MPA,这意味着要考虑制作页面的资源,用户体验,博客,用户如果每次点击都会导致发送到服务器的请求以及供用户阅读的重型页面,则可能没有任何承诺(或耐心)留在博客中。这意味着路线(Express或Angular)非常适合用户浏览博客。
博客通常包含文本,用户可以执行文本搜索,这意味着您需要为数据确定正确的数据存储,即文本。
这使您可以选择最合适的数据库,这也是经济实惠的 - SQL Server提供全文搜索,但需要花费一些高额费用; MySql也是如此,显然没有成本或成本较低; MongoDb,一个文档数据库,为您提供相同的,无需额外费用(除非您选择云模型)。因此,SQL Server并不理想,因为应用程序不是(很可能不是,作为博客)意味着产生任何利润;如果您使用PHP服务器和PHP开发,MySQL是理想的选择; MongoDb是理想的,因为它允许使用请求对象包装模型,从而消除了大量编码以读取数据库并写入视图。
EG。
(在着陆博客页面的路由器页面中)
var router = express.Router();
var posts = mongoose.model('BlogPosts');
router.get('/get, function(req, res) {
res.json(req.posts); // As simple as this
});
(在视图中)
<div ng-repeat="post in infiniteitems">...</div>
(在控制器中)
$.ajax({
url: '<url to your route>',
type: 'GET',
dataType: 'json',
success: function(data) {
$scope.infiniteitems=data; // Binds to the controller item in the view
$scope.$apply();
},
error: function() { },
beforeSend: setHeader
});
因此,只需几行代码即可完成导航,视图和数据的处理。更重要的是,没有 innodb 或数据库引擎
该代码仅用于说明目的。
因为MongoDB将文档作为JSON返回,并且将视图绑定到JSON比绑定对象或XML值非常简单!
显然,这意味着MVC框架,因此AngularJs是正确的选择。
所以,请选择Angular。
而且,因为MongoDB在NodeJS上工作得很好,所以整个事情一起工作,这就是为什么他们称之为MEAN堆栈 - M ongoDB, E xpress,< strong> A ngularJS, N odeJS!